c# 关于backgroundWorker的取消

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 关于backgroundWorker的取消相关的知识,希望对你有一定的参考价值。

我调用backgroundWorker1.RunWorkerAsync()后,在Dowork事件工作中的时候,我有一个按钮可点击,点击后调用backgroundWorker1的CancelAsync()方法,这个方法是挂起进程运行的吧,以为我再调用RunWorkerAsync()会报异常说正在工作,我该用什么方法来完全取消这个backgroundWorker1在后台的运行,以至我再调用RunWorkerAsync()不会报错

参考技术A 在你的DoWork事件工作中的那个方法里面,也就是以后台线程运行的那个方法里面,需要周期性检测backgroundWorker1.CancellationPending属性,如果其为true,马上让方法返回。

这样你再调用CancelAsync()就可以了
参考技术B backgroundworker对线程的访问提供了一种安全的方式。对thread的一次封装。用于在单独的线程上运行操作。
thread
用于线程的创建和控制的类。
参考技术C 进我空间看一看有这方面的资料本回答被提问者采纳

以上是关于c# 关于backgroundWorker的取消的主要内容,如果未能解决你的问题,请参考以下文章

BackgroundWorker的使用一二(可视化编程,开始后台工作,报告进度,取消后台工作等)

你不一定知晓的C#取消异步操作

你不一定知晓的C#取消异步操作

支持取消操作和暂停操作的Backgroundworker

C# BackgroundWorker 的文化

C# BackgroundWorker使用总结