-1

我需要暂停我的进度条几秒钟,然后它才能恢复为空。

我正在使用后台工作人员。

进度条中的完成不明显,我想让用户有时间注意到工作完成。

我不想使用“Thread.sleep”,因为它会使我的程序变慢。我认为冻结 ui 可能会有所帮助,因为我的所有工作都是在后台线程中完成的,但我不知道该怎么做。

4

3 回答 3

2

这是使用 newasyncawait关键字的完美场景。

private async void YourBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
  YourProgressBar.Value = 100;
  await Task.Delay(100);
  YourProgressBar.Value = 0;
}
于 2013-11-01T20:42:39.367 回答
0

我同意做 Thread.Sleep 似乎是错误的解决这个问题。问题不在于您的计算,而在于演示文稿问题。也许使用某种动画来解决这个问题会解决你的问题。不确定您使用的是什么,但请查看此线程以查看 jquery 进度动画:

您如何为 jQuery UI 进度条的值设置动画?

于 2013-11-01T20:37:56.437 回答
0

我最终解决了这个问题。虽然我实际上并没有冻结 UI,也没有使用 thread.sleep。我进入最后一个子功能,并在那里报告进度为 100。因此,当它完成该功能时,进度条也达到 100。但需要几毫秒才能回到 dowork 功能,然后运行workercompleted。它为用户提供了一个窗口来通知它完成。感谢大家!

我感谢您的所有努力和建议。

于 2013-11-04T20:19:09.843 回答