界面冻结,怎么用多线程加进度条改善?
界面上点“下一步”,执行操作到数据库要1分钟,这个阶段界面冻结很难看,怎么用多线程加个进度条改善?
有个难点,异步执行操作到数据库,过程要在进度条显示进度,percent怎么计算?
另外,我要获得异步“执行操作到数据库”的结果,成功还是失败,弹出相应提示信息。
请高手指点
------解决方案--------------------执行进度和结果都靠委托回调返回给界面显示
------解决方案--------------------用异步委托回调,
但真个执行过程却没有办法获取进度。因为没有人知道执行需要多少时间。
------解决方案--------------------用BackGroundWorker , 不要在UI thread上,否则UI就停住了。
Percent 也有。仔细看MSDN
------解决方案--------------------增加一个线程,用异步委托调用
如果是多个sql语句,可以显示进度,如果是一个sql语句要执行很久,进度不好显示
------解决方案--------------------增加一个线程,去取数据
执行完了再显示Invoke到界面上.
------解决方案--------------------没有办法使用时间精确。微软的很多产品在安装时,本来还有10分钟才完成,可是一下子就剩下几十秒了,所以呀,这种时间只可以大致估算一下。
------解决方案--------------------先是进度条的问题可以解决,新开一个线程执行Sql,进度条使用你预估计的时间设置,就像Windows的安装
------解决方案--------------------不用知道Sql执行需要的真实时间,只是给用户一个好看的界面而已吧
------解决方案--------------------可专门做个进度条的界面,用个线程来执行弹出这个界面。
不过最好是不用进度条,就用个gif“请等待...”图片
------解决方案--------------------tjvictor(终于升星了,向两星奋斗) ( ) 信誉:100 Blog 2007-03-28 10:47:00 得分: 0
没有办法使用时间精确。微软的很多产品在安装时,本来还有10分钟才完成,可是一下子就剩下几十秒了,所以呀,这种时间只可以大致估算一下。
----------------------------------------------------
up
------解决方案--------------------用专门的进度条也不能很精确,还是用gif之类的图片吧。等完成再去捍图片就可以了
------解决方案--------------------典型的异步多线程,
可以使用observer做回调。
percetage,可以开始之后等待回调