日期:2014-05-20  浏览次数:20682 次

关于进度条的问题(各位牛人帮忙)
从数据库里抽数据的同时,用进度条进行进度的显示。数据显示和进度条是在不同的窗体。怎么能让它们同步呀



------解决方案--------------------
只能做无状态进度条,做不了有状态的进度条因为从数据库抽数据的时间是无法预计的
开个线程去跑就行了 不存在同步问题
------解决方案--------------------
1.用委托,弹出窗体显示进度条即可
2.更简单的,直接把进度条变成PUBLIC,加栽数据的时候改变VALUE即可,
3.如果出现不动的话,可能要用线程了
大概这个意思
------解决方案--------------------
将进度条控件设为public,让抽取数据的窗体函数能够访问,每抽取一条数据,设定进度条前进一格,然后用Application.DoEvents()让进度条显示改变
------解决方案--------------------
如果用的是vs2005的话可以考虑用BackgroundWorker类试一下
------解决方案--------------------
有没有能提供一些代码的?
------解决方案--------------------
开一个线程来刷新进度条,刻度比率与数据读取成正比
------解决方案--------------------
请参考 线程回调(后台)+ XMLHttp 异步调用(前台),再加上一些 Application 就可以解决了
------解决方案--------------------
线程回调 简单点说,就是为了让 IIS开辟一个线程,这个线程在 form post之后,独立于 IIS进程运行在服务器,这点是最关键的,如果不用线程回调,线程会在进程结束前结束,或在进程结束前,不返回 .aspx 页面,而第二种情况会导致 XMLHttp 的异步调用失败。
换句话说,就是你页面上的按钮被点击了,IIS返回了一个被刷新过的 aspx页面后,而你的线程仍然在继续执行查询方面的动作,直到查询结束,并不断的往 Application 中写入当前执行的状况。
XMLHttp 是前台js的一个类,负责在 前台不断的获取后台 Application 的值以显示在页面上。如果不用 XMLHttp 也是可以的,可以通过不停的刷新某个页面来取得 Application 的值。