BackgroundWorker组件使用
来源:互联网 发布:snh48赵嘉敏退团 知乎 编辑:程序博客网 时间:2024/05/17 03:25
BackgroundWorker组件使用
下面指出BackgroundWorker类的常用属性和事件。
重要属性:
CancellationPending——只读,指示应用程序是否已请求取消后台操作。若为真则退出线程。
--------------------------------------------------------------------------------------------------IsBusy——只读,指示
--------------------------------------------------------------------------------------------------WorkerReportsProgress——读写,该值指示
--------------------------------------------------------------------------------------------------WorkerSupportsCancellati
//———————————————————————————————————————————————//
重要事件:
DoWork——调用
--------------------------------------------------------------------------------------------------
ProgressChanged——调用
--------------------------------------------------------------------------------------------------
RunWorkerCompleted——当后台操作已完成、被取消或引发异常时发生。
重要方法:
CancelAsync——请求取消挂起的后台操作
--------------------------------------------------------------------------------------------------
ReportProgress(Int32,Object)——引发
--------------------------------------------------------------------------------------------------
RunWorkerAsync——开始执行后台操作
//——————————————————————————————————————————————//
BackgroundWorker的使用非常简单,从工具箱中拖出即可(当然也可以自己用代码声明一个BackgroundWorker对象)。其使用流程包括三个:
1)DoWork,顾名思义,这个事件里主要进行后台操作,不应设计UI交互
2)ProgressChanged,后台线程的工作有了一定进展的时候,就可以在这里反馈给UI界面显示,这个方法运行于主线程内。
3)RunWorkerCompleted,调用结束后的相关操作。这个方法也位于主线程内。调用结束有三种情况:完成任务、异常退出、取消任务。
具备了以上三部分内容以后,只要适时调用BackgroundWorker的RunWorkerAsync,就会触发DoWork事件开辟后台线程处理数据;而在DoWork中调用ReportProgress报告处理进度时又会触发ProgressChanged事件,可以与UI进行交互。当调用后台线程处理完成或调用CancelAsync方法或发生错误时,又会触发RunWorkerCompleted事件。这样完成了整个流程。
接下来通过一段代码示例说明BackgroundWorker的工作流程,程序运行效果如图
示例代码:
namespace
{
}
- BackgroundWorker组件使用经验
- BackgroundWorker组件的使用
- 使用BackgroundWorker组件
- 使用BackgroundWorker组件
- 使用BackgroundWorker组件
- BackgroundWorker组件的使用
- BackgroundWorker组件使用
- 使用BackgroundWorker组件
- BackgroundWorker组件的使用经验
- 使用BackgroundWorker组件 (进度条)
- BackgroundWorker 组件
- BackgroundWorker组件
- 在 .NET 2.0 中使用 BackgroundWorker 组件
- VS2005中BackgroundWorker组件的使用经验
- 使用BackgroundWorker组件进行异步操作编程
- 使用BackgroundWorker组件进行异步操作编程
- VS2005中BackgroundWorker组件的使用经验
- 使用BackgroundWorker组件进行异步操作编程
- PE 2 Even Fibonacci numbers
- Cocos2dx 场景自动切换
- #iOS# Grand Central Dispatch 后台处理及应用
- JVM内存参数详解以及配置调优
- HDU 2955 Robberies
- BackgroundWorker组件使用
- 距左边距距离的设置:layout_marginLeft和paddingLeft
- Docker:Window上的Boot2Docker安装和入门
- 侧滑返回---一些问题
- 再谈谈注册(本质是建立映射)与回调
- 横竖屏切换时候Activity的生命周期
- HDU - 1047 - Integer Inquiry (大数高精度)
- 初来乍到CSDN
- LeetCode之Remove Duplicates from Sorted Array II