BackgroundWorker组件总结.ppt
《BackgroundWorker组件总结.ppt》由会员分享,可在线阅读,更多相关《BackgroundWorker组件总结.ppt(11页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、BackgroundWorker组件总结BackgroundWorker类位于类位于System.ComponentModel 命名空间中,通命名空间中,通过该类在单独的线程上执行操作实现基于过该类在单独的线程上执行操作实现基于事件的异步模式。下面对事件的异步模式。下面对BackgroundWorker类的主要成员进行介绍。类的主要成员进行介绍。RunWorkerAsync方法:该方法提交一个以异步方式启动运行操作的请求,发出请求后,将引发 DoWork 事件,在事件处理程序中开始执行异步操作代码。RunWorkerAsync 方法签名如下,Public void RunWorkerAsync
2、();Public void RunWorkerAsync(Object argument);如果异步操作需要操作参数,可以将其作为argument参数提供,由于参数类型为Object,因此访问时可能需要进行类型转换。CancelAsync 方法提交终止异步操作的请求,并将 CancellationPending 属性设置为 true。需要注意的是,CancelAsync 方法是否调用成功,同WorkerSupportsCancellation 属性相关,如果允许取消执行的异步操作,需将WorkerSupportsCancellation 属性设置为true,否则调用该方法将抛出异常。Canc
3、elAsync方法不含参数,方法签名如下,Public void CancelAsync();调用 CancelAsync 方法时,BackgroundWorker的 CancellationPending 属性值将被设置为true,因此在编写单独线程中执行的辅助方法时,代码中应定期检查 CancellationPending 属性,查看是否已将该属性设置为 true,如果为true,应该结束辅助方法的执行。有一点需要注意的是,DoWork 事件处理程序中的代码有可能在发出取消请求时已经完成处理工作,因此,DoWork事件处理程序或辅助方法可能会错过设置CancellationPending属
4、性为true的时机。在这种情况下,即使调用 CancelAsync方法发出了取消异步操作请求,RunWorkerCompleted 事件处理程序中RunWorkerCompletedEventArgs 参数的 Cancelled 标志也不会被设置为 true,这是在多线程编程中经常会出现的竞争条件问题,因此编写代码的时候需要考虑。ReportProgress 方法,调用该方法将引发 ProgressChanged 事件,通过注册该事件在事件处理程序中获取异步执行进度信息。方法签名如下:publicvoidReportProgress(int percentProgress);publicvoi
5、dReportProgress(int percentProgress,Object userState);该方法包含两个版本,percentProgress表示进度百分比,取值为0-100,userState为可选参数表示自定义用户状态。同CancelAsync 方法一样,BackgroundWorker的WorkerReportsProgress 属性设置为 true时,ReportProgress 方法才会调用成功,否则将引发InvalidOperationException异常。BackgroundWorker的3个属性,CancellationPending用来提示操作是否已经取消,
6、WorkerReportsProgress和WorkerSupportsCancellation分别用来设置是否允许进度汇报和进行取消操作。Public bool CancellationPending get;Public bool WorkerReportsProgress get;set;Public bool WorkerSupportsCancellation get;set;另外一个会用到的属性是IsBusy,publicbool IsBusy get;通过该属性查询BackgroundWorker实例是否正在运行异步操作,如果 BackgroundWorker 正在运行异步操作,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BackgroundWorker 组件 总结
限制150内