C# 停止BackgroundWorker

2023-12-12

我对后台工作人员有疑问。

我在后台工作人员中有无限循环。我怎样才能阻止它?


将其更改为非无限循环。

The BackgroundWorker具有内置的取消支持。取消后台工作人员调用BackgroundWorker.CancelAsync。您还需要修改工作人员代码以检查取消,如文档中所述:

CancelAsync 提交请求以终止挂起的后台操作并将 CancellationPending 属性设置为 true。

当您调用 CancelAsync 时,您的工作方法有机会停止其执行并退出。工作人员代码应定期检查 CancellationPending 属性以查看它是否已设置为 true。

例如,如果您的工作线程中有这个无限循环:

while (true)
{
    ...
}

那么你可以将其更改为:

while (!backgroundWorker.CancellationPending)
{
    ...
}

要取消工作,您还需要设置属性BackgroundWorker.WorkerSupportsCancellation to true。这可以在设计器中完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 停止BackgroundWorker 的相关文章

随机推荐