日期:2014-05-18  浏览次数:20765 次

进度条的效率问题
从SQL SERVER 2005里面读10000条记录到 datatable 里面
然后一条条的 do something 
Form 就没有反应了,更不用说进度条
我就想在处理大批量数据的时候,还能看见进度条在走
谁有解决的方案,请赐教
先谢谢了


------解决方案--------------------
一种将拷贝过程放到另一个线程中进行,还有一种就是在进度条赋值的语句之后写一句Application.DoEvents()
------解决方案--------------------
requestedCountControl.Maximum = 10000;
requestedCountControl.Minimum = 1;

do something 以后进度条进度加1 不就是这样子么?
------解决方案--------------------
用线程。
将进度条的改变写在一个线程里面。
要记住设置窗体的静态属性
Form.CheckForIllegalCrossThreadCalls = true;

------解决方案--------------------
如果我每执行完一次任务,就System.Threading.Thread.Sleep(1000); 
那进度条会不会在休眠以后有反应呢
----------------------
如果你是在多線程環境下的輔助線程中執行Sleep,那么不會有影響進度條。
如果主線程中執行,整個窗體都不會有響應了