在很多场合下, 你需要在主(UI)线程中运行一些比较耗时间的任务,比如以下的任务

l         Image downloads

l         Web service invocations

l         File downloads and uploads (including for peer-to-peer applications)

l         Complex local computations

l         Database transactions

l         Local disk access, given its slow speed relative to memory access

这个时候UI就会陷入一种假死的状态,会给用户带来一种很不好的体验. 如何在这里发挥多线程的优势以改善用户体验? .Net2.0的System.ComponentModel.BackgroundWorker为我们提供了一个很方便的解决方法.

BackgroundWorker内部实现是基于delegate的异步调用.

backgroundWorkerDemo.zip

转载于:https://www.cnblogs.com/51net/archive/2011/11/05/2390472.html

C# BackgroudWorker相关推荐

  1. C#当中的BeginInvoke和EndInvoke

    我们已经知道 C#当中 存在async/await .BackGroudWorker类以及TPL(任务并行库).当然C#还有一些旧的模式来支持异步编程.参考<C#图解教程>  1. Beg ...

  2. 编程大讲坛、坛坛是佳酿--编程大讲坛:C#核心开发技术从入门到精通

    [书名]编程大讲坛:C#核心开发技术从入门到精通 [作者]管西京 [ISBN] 978-7-121-09043-1 [出版社]电子工业出版社 [出版日期]2009年9月 [定  价]79.80元(含光 ...

  3. 【转】1.7异步编程:基于事件的异步编程模式(EAP)

    传送门:异步编程系列目录-- 上一篇,我给大家介绍了".NET1.0 IAsyncResult异步编程模型(APM)",通过Begin*** 开启操作并返回IAsyncResult ...

  4. C#多线程之旅(2)——详解线程的开始和创建

    阅读目录 代码下载 一.线程的创建和开始 二.传递数据给一个线程 三.命名线程 四.前台线程和后台线程 五.线程优先级 六.异常处理 代码下载 Thread_博客园_cnblogs_jackson07 ...

  5. 【C#】【Thread】BackgroundWorker的使用

    BackgroundWorker 可以用于启动后台线程. 主要的事件及参数: 1.DoWork --当执行BackgroundWorker.RunWorkerAsync方法时会触发该事件,并且传递Do ...

  6. UI 假死的可能性和处理方法总结

    1. 使用Application.DoEvents() 2. async 3. await 4. Task 5. BackgroudWorker组件 线程耗尽:我们知道java程序中,所有计算都是通过 ...

  7. C# 线程的挂起与唤醒 (AutoResetEvent,ManualResetEvent)

    如果说C#和C++有什么不同,博主不得不说,对于异步的支持程度是C#的一一个伟大的进步. 其实早期的C++都没有异步,并发的概念.博主第一次使用C++创建异步程序的时候,是使用boost库的内容进行实 ...

  8. 编程资料 -C# 多线程

    编程资料 - 多线程 C#多线程编程实例实战 作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996 单个写入程序/多个阅读程序在.Net ...

  9. 编程资料 -C# 多线程 1

    编程资料 - 多线程 C#多线程编程实例实战 作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996 单个写入程序/多个阅读程序在.Net ...

最新文章

  1. RT-thread内核之进程间通信
  2. 无痛涨点!大白话讲解 Generalized Focal Loss
  3. 重装了java然后说找不到路径,Java第三次作业第五题
  4. eclipse安装birt插件
  5. wxWidgets:wxSizerFlags类用法
  6. C++实现字符串分割函数split()
  7. python编程制作接金币游戏_一个简单的pygame接金币游戏
  8. 深度学习(二十七)可视化理解卷积神经网络
  9. 一级b类计算机考试题目和类型,第五章计算机一级B类高职考试习题资料.doc
  10. 图像处理的灰度化和二值化
  11. 语音信号处理 —— 笔记(一)音频信号处理
  12. 怠惰是贫穷的制造厂 jzoj 2017.8.18 B组
  13. 此博客更新较慢,主要用于微信公众号“申龙斌的程序人生”的备份了
  14. 创建easyui的右键菜单(onRowContextMenu)
  15. 【转载】PCB设计方法和技巧
  16. PDF怎么添加页码?PDF添加页码的方法
  17. 《SteamVR2.2.0官方教程(一)》(Yanlz+Unity+XR+VR+AR+MR+SteamVR+Valve+Oculus+Tutorials+Interaction+立钻哥哥++ok++)
  18. 基于DSP的真空断路器机械特性测试系统硬件设计
  19. Excel怎么大图预览表格中的图片?
  20. 移动硬盘安装Ubuntu,并确保在任何电脑都可用

热门文章

  1. 机器学习(八)Apriori算法学习
  2. Ubuntu14.04配置python接口,测试的小问题
  3. Google AI面试题
  4. createbitmap 旋转90度_Android Bitmap图片两种方案旋转90度的方法代码
  5. Server Less 助力前端全栈
  6. Windows 查看端口被哪些程序占用
  7. 「雕爷学编程」Arduino动手做(18)---太阳能电池模块
  8. 001 Hello Security 的框架搭建
  9. Flink - allowedLateness
  10. sql 查询所有数据库-表-表结构