在一个程序中,一些耗时的操作,在长时间运行时可能会导致用户界面 (UI) 处于停止响应状态,用户在这操作期间无法进行其他的操作,为了不使UI层处于停止响应状态,需要将这些耗时的操作,设置为后台线程,并且在UI层可以展示后台操作的进度,比较常用的方法有使用线程以及BackgroundWorker类.....
分类:
编程语言 时间:
2015-09-06 22:49:12
阅读次数:
222
许多开发者看见一些软件有进度条显示进度,自己想弄,项目建好后发现并没有自己想象中的那么简单。。。看了网上很多教程后,写了一个小Demo供网友们参考~~,Demo的网址:http://pan.baidu.com/s/1dDIxHvzBackgroundWorker可以在代码中创建,也可以在工具箱中拖,...
建议79:使用ThreadPool或BackgroundWorker代替Thread使用线程能极大地提升用户体验度,但是作为开发者应该注意到,线程的开销是很大的。线程的空间开销来自:1)线程内核对象(Thread Kernel Object)。每个线程都会创建一个这样的对象,它主要包含线程上下文信息...
BackgroundWorker简介 BackgroundWorker在winfrom中有对应控件,该有三个事件:DoWork 、ProgressChanged 和 RunWorkerCompleted。在程序中调用RunWorkerAsync方法则会启动DoWork事件的事件处理,当在事件处理过程...
BackgroundWorker是一个在System.ComponentModel命名空间下的帮助类,用于管理工作线程。它提供了以下几个重要的特性:1)“cancel”标记,可以在不使用Abort的情况下给工作线程打信号终止工作线程(调用CancelAsync方法)。2)提供报告进度、完成度和退出的...
分类:
其他好文 时间:
2015-08-05 01:00:17
阅读次数:
144
BackgroundWorker主要用来提供后台运算服务(防止用户前台无响应等待),并提供服务进度的类;代码如下: 1 BackgroundWorker bgw = new BackgroundWorker(); 2 bgw.DoWork += bgw_DoWork; 3 ...
分类:
其他好文 时间:
2015-08-04 11:00:17
阅读次数:
104
private BackgroundWorker worker = null; ProgressBar probar = new ProgressBar(); private int percentValue = 0; private int percen...
做了很多种方法1:线程 thread的方法2:backGroundWorker的方法3:自定义线程类4:做一个进度条的窗体 通过自定义设置做(最方便快捷)public partial class waitingProcessbar : Form { public waitingP...
分类:
其他好文 时间:
2015-07-15 16:45:11
阅读次数:
125
本文介绍了BackgroundWorker组件的功能及在基于事件的异步操作编程中的应用,并对组件的实现原理进行简述。在应用程序中,可能会遇到一些执行耗时的功能操作,比如数据下载、复杂计算及数据库事务等,一般这样的功能会在单独的线程上实现,执行结束后结果显示到用户界面上,这样可避免造成用户界面长时间无...
分类:
其他好文 时间:
2015-06-08 09:29:00
阅读次数:
234
背景:在 WinForms 中,有时要执行耗时的操作,比如统计某个磁盘分区的文件夹或者文件数目,如果分区很大或者文件过多的话,处理不好就会造成“假死”的情况,或者报“线程间操作无效”的异常,或者在该操作未完成之前操作用户界面,会导致用户界面停止响应。----比如现在学习的MES UI中要查询数据量较...
分类:
其他好文 时间:
2015-06-03 15:32:45
阅读次数:
185