Question

J'utilisais travailleur de fond au niveau de contrôle utilisateur et travaillais fine.But alors je poussais le travailleur dans l'une de la question Helper function.My est que cela fonctionne bien jusqu'à ce que j'essaie d'annuler la tâche. Dans la fonction DoWork il y a boucle appeler le service Web à chaque fois et avant d'appeler le service qu'elle vérifie l'annulation en attente et si oui, alors il devrait briser la boucle.

Était-ce utile?

La solution

1) Assurez-vous que vous avez défini la propriété WorkerSupportsCancellation sur votre BackgroundWorker à True.

2) Assurez-vous que vous êtes bien une référence débarrassez service Web. (Tout simplement parce que c'est ce que vous devriez faire de toute façon)

Vous pouvez également l'étape par le BackgroundWorker et vérifier que lorsque annulé, l'annulation des biens en attente est en cours de réglage à true.

Si aucune de ces aide de choses, alors vous voudrez peut-être envisager de montrer le code pour la création et le démarrage de votre BackgroundWorker, ainsi que tout code pour les événements (DoWork, RunWorkerCompleted, etc).

EDIT (cela a supprimé lorsque Will a effectué une modification)

Vous pouvez également consulter ce lien .

Une chose imporant pour obtenir de ce lien est que même lorsque vous annulez, si le travailleur fait déjà le travail. (IE: traitement par DoWork), il peut manquer le cancellationpending et continuer le travail de ce

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top