.Net Background Worker не отменяет - PullRequest
       37

.Net Background Worker не отменяет

1 голос
/ 21 октября 2010

Я использовал Background worker на уровне управления пользователями, и он работал нормально. Но затем я толкнул работника в одну из функций Helper. Мой вопрос в том, что он работает нормально, пока я не попытаюсь отменить задачу.В функции DoWork есть цикл, вызывающий веб-сервис каждый раз, и перед вызовом сервиса он проверяет ожидающие отмены, и если да, то он должен прервать цикл.

1 Ответ

4 голосов
/ 21 октября 2010

1) Убедитесь, что вы установили свойство WorkerSupportsCancellation в BackgroundWorker на True.

2) Убедитесь, что вы правильно утилизируете любую ссылку на веб-сервис. (Просто потому, что это то, что ты должен делать в любом случае)

Вы также можете пройтись по BackgroundWorker и убедиться, что в случае отмены для свойства отложенного отмены устанавливается значение true.

Если ничего из этого не помогает, то вы можете рассмотреть возможность показа кода для создания и запуска фонового приложения, а также кода для событий (DoWork, RunWorkerCompleted и т. Д.).

РЕДАКТИРОВАТЬ (это было удалено, когда будет выполнено редактирование)

Вы также можете проверить эту ссылку .

Важной вещью, которую можно получить по этой ссылке, является то, что даже когда вы отменяете, если работник уже выполняет работу (т.е. обработка через DoWork), он может пропустить отмену и продолжить свою работу.

...