Backgroundworker不会停止工作

本文关键字:停止工作 Backgroundworker | 更新日期: 2023-09-27 18:07:30

DoWork是这样的:

        DoLengthyWork();
        //this is never executed
        if(bgWorker.CancellationPending)
        {
            MessageBox.Show("Up to here? ...");
            e.Cancel = true;
        }

我用bgWorker.CancelAsync();

如果 bgWorker。CancellationPending无法到达,因为它被DoLengthyWork阻塞了,我该如何停止后台工作?

Backgroundworker不会停止工作

你的问题是你的DoWork函数的执行永远不会达到CancellationPending条件。事实上,正如balexandre所说,您应该知道组织DoLengthyWork场景定期检查其内部的CancellationPending状态。