cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 20141 19 déc. 2008 à 15:49
bonjour,
manque juste le changement d'attribut avant la suppression sinon les fichiers en lecture seul ne sont pas supprimés normalement
cs_Vince300
Messages postés11Date d'inscriptionlundi 10 mars 2008StatutMembreDernière intervention16 mars 2010 20 nov. 2008 à 21:16
Bonjour
Merci pour ce conseil. Effectivement, je débute avec le BackgroundWorker donc je ne connaissais pas cette propriété.
@+
jmenfous
Messages postés117Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention 2 juillet 20091 20 nov. 2008 à 14:11
Pardon j'ai fais vite fais mon exemple avec Visual Studio et je n'ai pas pansé à changer le nom de mon BackGroubdWorker:
If Me.MainWorker.CancellationPending Then
e.Cancel = True
return
End If
jmenfous
Messages postés117Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention 2 juillet 20091 20 nov. 2008 à 14:10
Bonjour,
Peut être pourais tu utiliser un peu plus ton backgroudworker MainWorker avec l'annulation de l'opération en cours.
Je m'explique : Effectivement, tu utilises la méthode CancelAsync() de MainWorker. Mais sans mettre de code controllant la propriété CancellationPending de MainWorker, celà ne sert à rien.
Pour faire simple : passes MainWorker.WorkerSupportsCancellation à True
et dans ta méthode MainWorker_DoWork ajoutes dans chaque boucle le code suivant :
If Me.backgroundWorker1.CancellationPending Then
e.Cancel = True
return
End If
Comme celà si il y a demande d'annulation, il y aura bien un arret de ton job en cours.
19 déc. 2008 à 15:49
manque juste le changement d'attribut avant la suppression sinon les fichiers en lecture seul ne sont pas supprimés normalement
20 nov. 2008 à 21:16
Merci pour ce conseil. Effectivement, je débute avec le BackgroundWorker donc je ne connaissais pas cette propriété.
@+
20 nov. 2008 à 14:11
If Me.MainWorker.CancellationPending Then
e.Cancel = True
return
End If
20 nov. 2008 à 14:10
Peut être pourais tu utiliser un peu plus ton backgroudworker MainWorker avec l'annulation de l'opération en cours.
Je m'explique : Effectivement, tu utilises la méthode CancelAsync() de MainWorker. Mais sans mettre de code controllant la propriété CancellationPending de MainWorker, celà ne sert à rien.
Pour faire simple : passes MainWorker.WorkerSupportsCancellation à True
et dans ta méthode MainWorker_DoWork ajoutes dans chaque boucle le code suivant :
If Me.backgroundWorker1.CancellationPending Then
e.Cancel = True
return
End If
Comme celà si il y a demande d'annulation, il y aura bien un arret de ton job en cours.
En espérant que celà te soit utile.