Arrêter un BackGroundWorker pendant son traitement [Résolu]

Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Dernière intervention
16 mai 2014
- - Dernière réponse : cs_ShayW
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
- 23 août 2013 à 14:47
Bonjour,

J'ai dans mon code, un appel à un BackGroundWorker qui va executer la méthode "Cherche()" qui consiste a parcourir les lignes d'un fichier excel et d'insérer les données dans ma BDD.

Ainsi pour lancer ma méthode je fais :

bgw.RunWorkerAsync()


Private Sub bgw_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgw.DoWork
    
        
        Cherche(e.Argument, listType)
End Sub


Mon problème : Dans ma méthode Cherche je teste une condition : "Si je rencontre le mot "NoUnique" alors je regarde quel numéro est associé, et s'il existe dans la BDD, alors je veux arreter la méthode Cherche().

J'ai donc essayé en mettant un
bgw.CancelAsync()


Mais cela ne fait rien du tout.

Je me doute bien que ça ne peut pas s'arreter comme par magie, mais je ne vois pas, comment faire (en utilisant l'évenement Dowork() par exemple car je suis au niveau de ma fonction Cherche()..)

Merci d'avance



--
Afficher la suite 

1 réponse

Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
0
Merci
Salut

pourquoi ne pas écrire dans la méthode cherche
if  exist in BDD then
 exit sub
end if 
Moundir76
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Dernière intervention
16 mai 2014
-
Salut,

J'ai déjà essayé et ça me fait :

"Une exception a été levée par la cible d'un appel.".

Je pensais donc que c'était impossible car le BackGroundWorker s'éxecutait. Mais a y réfléchir a nouveau cela devrait pourtant fonctionner !

Merci pour ton aide

EDIT : En pas à pas, je vois bien que ca retourne dans la méthode DoWork, et ça va bien jusqu'au End Sub du Dowork et c'est la que ça plante...
Moundir76
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Dernière intervention
16 mai 2014
-
Bon je viens d'utiliser pour la premiere fois le
"StackTrace". et j'ai la ligne de l'erreur.

Je ne comprends pas pourquoi en mode pas pas je n'arrive pas à y aller...

C'est donc dans le bgw_RunWorkerCompleted que ça plante car je demande a mon datagridview de se trier, alors que rien n'a été inséré !

Je te remercie ShayW, j'étais pourtant parti dans la bonne direction des le début !

Bonne fin de journée et bon week end !
cs_ShayW
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
-

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.