【文件属性】:
文件名称:WinForm进度条的2种异步实现方式
文件大小:45KB
文件格式:RAR
更新时间:2013-09-08 10:55:19
WinForm进度条异步实现
在WinForm中,比如一些文件传输和一些费时的操作,如果处理不好就会造成“假死”的情况,为此我们可以采用进度条进行友好提示。
BackgroundWorker类是.net 2.0里新增加的一个类,对于需要长时间操作而不需要用户长时间等待的情况可以使用这个类。
注意确保在 DoWork 事件处理程序中不操作任何用户界面对象。而应该过 ProgressChanged 和 RunWorkerCompleted 事件与用户界面进行通信。
它有几个主要属性:
CancellationPending——指示应用程序是否已请求取消后台操作。
IsBusy——指示 BackgroundWorker 是否正在运行异步操作
WorkerReportsProgress——该值指示 BackgroundWorker 能否报告进度更新
WorkerSupportsCancellation——该值指示 BackgroundWorker 是否支持异步取消
还有如下事件:
DoWork——调用 RunWorkerAsync 时发生。
ProgressChanged——调用 ReportProgress 时发生。
RunWorkerCompleted——当后台操作已完成、被取消或引发异常时发生。
还有如下方法:
CancelAsync——请求取消挂起的后台操作
ReportProgress——引发 ProgressChanged 事件
RunWorkerAsync——开始执行后台操作
如果启用取消线程则设置WorkerSupportsCancellation = true;然后调用
CancelAsync方法即可。
【文件预览】:
ProcessTest
----ProcessTest()
--------ProcessTest.suo(19KB)
--------ProcessTest()
--------ProcessTest.gpState(260B)
--------ProcessTest.sln(923B)
网友评论
- 看了,还行,可以使用,感谢分享
- 程序有点小问题,貌似会用不了
- 挺好的,解决界面“假死”的现象,我采用的是BackgroundWorker这种方式实现异步。感谢分享
- 可以使用,还行,就是多线程
- 两种方法都能实现异步,还是第二种好些
- 好像程序有点问题,正在学习多线程
- 还行,正在研究中,就是多线程
- 虽然这两种方法都能实现异步,解决界面“假死”的现象,但我还是比较偏向用BackgroundWorker这种方式实现异步。
- 看了,还行,可以使用。忘记有没有用了。