在VS2005中添加了BackgroundWorker组件,该组件在多线程编程方面使用起来非常方便,然而在开始时由于没有搞清楚它的使用机制,走了不少的弯路,现在把我在使用它的过程中的经验与诸位分享一下。
BackgroundWorker类中主要用到的有这列属性、方法和事件:
重要属性:
1、CancellationPending
获取一个值,指示应用程序是否已请求取消后台操作。通过在DoWork事件中判断CancellationPending属性可以认定是否需要取消后台操作(也就是结束线程);
2、IsBusy
获取一个值,指示 BackgroundWorker 是否正在运行异步操作。程序中使用IsBusy属性用来确定后台操作是否正在使用中;
3、WorkerReportsProgress
获取或设置一个值,该值指示BackgroundWorker能否报告进度更新
4、WorkerSupportsCancellation
获取或设置一个值,该值指示 BackgroundWorker 是否支持异步取消。设置WorkerSupportsCancellation为true使得程序可以调用CancelAsync方法提交终止挂起的后台操作的请求;
重要方法:
1、CancelAsync
请求取消挂起的后台操作
2、RunWorkerAsync
开始执行后台操作
3、ReportProgress
引发ProgressChanged事件
重要事件:
1、DoWork
调用 RunWorkerAsync 时发生
2、ProgressChanged
调用 ReportProgress 时发生
时间: 2024-11-01 13:29:30