我需要在弹出窗口中有一个进度条,而我的主线程正在进行一些繁重的计算.我正在使用Oracle API,所有繁重的工作都是通过调用此API的1个函数来完成的,因此我无法使用backgroudworker更新,因为我没有API的代码.我尝试使用ProgressBar和Timer创建一个新表单,但是timer_Click事件永远不会被触发!!(???)
任何的想法??
Dar*_*rov 11
而我的主线程正在进行一些繁重的计算.
错误.永远不要在Windows应用程序中的主线程内进行任何繁重的计算,否则您的用户只会讨厌您.
如果您的API没有提供报告进度的方法,那么您可以做的最好的事情是在计算过程中显示一些旋转动画,因为您将无法知道完成的工作的确切百分比.因此,将计算放在BackgroundWorker中,在运行计算之前显示一些旋转动画(这本身应该在DoWork事件中完成),并在完成工作后隐藏动画(RunWorkerCompletedEvent).
ProgressBar有一个Style属性,您可以设置Marquee为模拟无限进展.
| 归档时间: |
|
| 查看次数: |
3684 次 |
| 最近记录: |