BackgroundWorker backgroundWorker;
backgroundWorker = new BackgroundWorker {WorkerSupportsCancellation = true};
backgroundWorker.DoWork += (s, e) =>
{
while (!backgroundWorker.CancellationPending)
{
// Do...
}
{
while (!backgroundWorker.CancellationPending)
{
// Do...
}
e.Cancel = true;
};
};
backgroundWorker.RunWorkerAsync();
// 终止线程
backgroundWorker.CancelAsync();
当执行CancelAsync()时并没有真正终止线程而是将CancellationPending标记为ture e.Cancel=true才是真正终止
BackgroundWorker线程取消机制
本文介绍了使用C#中的BackgroundWorker组件实现线程任务,并详细解释了如何通过设置CancellationPending属性来请求取消正在运行的任务,最终通过e.Cancel=true来真正终止任务。
588

被折叠的 条评论
为什么被折叠?



