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阻塞了,我该如何停止后台工作?
你的问题是你的DoWork
函数的执行永远不会达到CancellationPending
条件。事实上,正如balexandre所说,您应该知道组织DoLengthyWork
场景定期检查其内部的CancellationPending
状态。