当前位置:编程学习 > C#/ASP.NET >>

BackgroundWorker的问题(winform异步提取数据,并精确显示进度条)

 现在可以异步提取数据了,但是精度条不能运作.
 在网上找了很多方法,Backgroudworker的reportprogress,delegaete等
 可能是不得要领吧
 请高人指点 --------------------编程问答-------------------- 没有必要,在backgroundworker执行的时候,显示一个窗体动画提示“数据正在读取中”即可。 --------------------编程问答-------------------- http://www.mbsky.com/InfoView/Article_11597.html
楼主看看上面的连接

不过还是通过代理和多线程来实现会好一些 --------------------编程问答-------------------- 关于你的提取数据的容量一开始知道吗,也就是说一开始能否计算出来,如果不行,那应该做成持续滚动的进度条,关于这个我在这里有详细的代码,
http://blog.csdn.net/zhzuo/archive/2008/07/23/2699305.aspx

--------------------编程问答--------------------
引用 2 楼 txg92 的回复:
http://www.mbsky.com/InfoView/Article_11597.html
楼主看看上面的连接

不过还是通过代理和多线程来实现会好一些

补充一下 事先是可以知道具体有多少条数据的 --------------------编程问答--------------------
引用 1 楼 chenxiaoqiang 的回复:
没有必要,在backgroundworker执行的时候,显示一个窗体动画提示“数据正在读取中”即可。


谢谢你的建议,但是我真的想做一个实时的啊 --------------------编程问答--------------------
引用 3 楼 zhzuo 的回复:
关于你的提取数据的容量一开始知道吗,也就是说一开始能否计算出来,如果不行,那应该做成持续滚动的进度条,关于这个我在这里有详细的代码,
http://blog.csdn.net/zhzuo/archive/2008/07/23/2699305.aspx


这个我看过了,不能实现,原因可能是,我这里是读取数据库!
数据库的读取,比如reader或者fill 感觉都是一次性完成的啊 
--------------------编程问答-------------------- 如果你是通过DbCommand.ExecuteReader 方法返回DataReader对象,可以进行进度显示(在循环取数据的时候进行进度条显示,当然你应该知道了数据条数更好),如果是通过DataAdapter.Fill方法,那就是一闪而过,会出现如你说的情况。

如果是Sql数据库你可以试一下SqlCommand..BeginExecuteReader 方法,这个是异步读取数据。

只要有个处理时间段,我文章里说的方式都可以满足进度条显示。 --------------------编程问答--------------------
引用 7 楼 zhzuo 的回复:
如果你是通过DbCommand.ExecuteReader 方法返回DataReader对象,可以进行进度显示(在循环取数据的时候进行进度条显示,当然你应该知道了数据条数更好),如果是通过DataAdapter.Fill方法,那就是一闪而过,会出现如你说的情况。

如果是Sql数据库你可以试一下SqlCommand..BeginExecuteReader 方法,这个是异步读取数据。

只要有个处理时间段,我文章里说的方式都可以满足进度条显示。


谢谢 关于第一种方法能说具体一点么? 我感觉还是没得要领 呵呵 麻烦了 --------------------编程问答--------------------  自己顶一下吧,还请赐教啊
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,