backgroundworker: Как мне выполнить метод и поддержать отмену _DoWork? - PullRequest
0 голосов
/ 11 августа 2011

У меня есть ссылка на MSDN , и я обнаружил, что довольно просто отменить _DoWork () BackgroundWorker's, вызвав событие.

Я хотел бы знать, как отменить _DoWork () при выполнении работы с другим методом, который я вызвал в _DoWork ().

Возможно ли это?

http://pastebin.com/wHrrBWKZ

Спасибо

Мэтт

1 Ответ

2 голосов
/ 11 августа 2011

Пример BackgroundWorker здесь показывает, как это сделать.

В итоге:

  • При создании BackgroundWorker установите WorkerSupportsCancellation.
  • В вашем обработчике DoWork периодически проверяйте CancellationPending.Если это правда, тогда установите DoWorkEventArgs.Cancel в true и вернитесь из DoWork.
  • . Чтобы отменить задачу, позвоните CancelAsync.
  • .RunWorkerCompletedEventArgs.Cancelled.

Чтобы сделать это из другого метода, этому методу должен быть передан экземпляр BackgroundWorker и экземпляр DoWorkEventArgs.

...