我对后台工作人员有疑问。
我在后台工作人员中有无限循环。我怎样才能阻止它?
将其更改为非无限循环。
The BackgroundWorker
具有内置的取消支持。取消后台工作人员调用BackgroundWorker.CancelAsync。您还需要修改工作人员代码以检查取消,如文档中所述:
CancelAsync 提交请求以终止挂起的后台操作并将 CancellationPending 属性设置为 true。
当您调用 CancelAsync 时,您的工作方法有机会停止其执行并退出。工作人员代码应定期检查 CancellationPending 属性以查看它是否已设置为 true。
例如,如果您的工作线程中有这个无限循环:
while (true)
{
...
}
那么你可以将其更改为:
while (!backgroundWorker.CancellationPending)
{
...
}
要取消工作,您还需要设置属性BackgroundWorker.WorkerSupportsCancellation to true
。这可以在设计器中完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)