Arrêter un BackGroundWorker pendant son traitement

Résolu
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014 - 23 août 2013 à 10:25
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 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



--

1 réponse

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
23 août 2013 à 13:52
Salut

pourquoi ne pas écrire dans la méthode cherche
if  exist in BDD then
 exit sub
end if 
0
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014
Modifié par Moundir76 le 23/08/2013 à 14:07
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...
0
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014
23 août 2013 à 14:32
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 !
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
23 août 2013 à 14:47
0
Rejoignez-nous