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