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

Moundir76 286 Messages postés dimanche 3 octobre 2010Date d'inscription 16 mai 2014 Dernière intervention - 23 août 2013 à 10:25 - Dernière réponse : cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention
- 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 

4 réponses

cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 23 août 2013 à 13:52
0
Merci
Salut

pourquoi ne pas écrire dans la méthode cherche
if  exist in BDD then
 exit sub
end if 
Moundir76 286 Messages postés dimanche 3 octobre 2010Date d'inscription 16 mai 2014 Dernière intervention - 23 août 2013 à 14:01
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 286 Messages postés dimanche 3 octobre 2010Date d'inscription 16 mai 2014 Dernière intervention - 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 !
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 23 août 2013 à 14:47

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.