显示应用程序仍在C#windows窗体应用程序中处理

时间:2010-08-09 14:14:34

标签: c# windows forms

我需要显示某种动画,而windows form应用程序正在处理数据,直到它给出输出。处理完成后,动画将停止。在基于Web的应用程序的Dev express中有很棒的工具。但是我们在Windows窗体应用程序中有类似的东西吗?

由于

这是一个调用存储过程的窗体。 SQL查询大约需要10分钟,我需要运行一些动画告诉系统仍在处理。由于我无法分配步骤,因此进度条不会工作。

4 个答案:

答案 0 :(得分:0)

您将需要查看BackgroundWorker class,它将允许您在另一个线程上启动代码,并处理工作线程和UI线程之间的通信,以便您可以适当地更新UI

答案 1 :(得分:0)

我建议将工作委托给BackgroundWorker并显示进度条。由于您无法分配步骤,您可以使用该栏来反映它应该花费的时间。

如果您希望使进度条更准确,而不是根据开发计算机上的测试任意决定它需要10分钟,您可以记录事务所需的时间并使用事务最近所花费的时间。决定你的进度条需要多长时间才能填满。

您还可以委派给BackgroundWorker,并在前台显示带有计数器或其他内容的消息 - “正在查询。已过去的时间:2分钟。估计完成时间:10分钟。”然后还有一个取消按钮。这样的事情。

只是不同的可能性。没有什么是好的,但是你缺乏对流程的内部访问限制了你的选择。

<编辑>哦,看起来你已经得到了答案。呃,好吧! < / edit>

答案 2 :(得分:0)

我建议您查看MSDN中的marque样式进度条。它只是在你的手术中来回走动。您的SQL查询将没有callacks或任何其他内容,因此这将允许您只是指示您的应用程序正在“正常工作”。

http://msdn.microsoft.com/en-us/library/bb760816%28VS.85%29.aspx

  

通过创建进度条控件   使用PBS_MARQUEE样式,你可以   以显示的方式为其制作动画   活动,但没有说明什么   任务的比例完成。   突出的部分进展   酒吧沿着长度反复移动   酒吧你可以开始和停止   动画,并控制其速度   发送PBM_SETMARQUEE消息。   选框进度条没有   范围或位置。

答案 3 :(得分:0)

我在一个单独的表单中使用ProgressBar执行此类事情。您可以使用计时器每隔10秒钟设置一次滴答,然后根据需要将ProgressBar重置为零并继续滚动。