我需要暂停进度条几秒钟才能返回null。
我正在使用Background worker。
进度条中的完成情况不明显,我想让用户有时间注意完成的工作。
我不想使用“Thread.sleep”因为它会让我的程序变慢。我认为冻结ui可能会有所帮助,因为我的所有工作都是在后台线程中完成的,但我不知道该怎么做。
答案 0 :(得分:2)
这是使用新async
和await
关键字的完美方案。
private async void YourBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
YourProgressBar.Value = 100;
await Task.Delay(100);
YourProgressBar.Value = 0;
}
答案 1 :(得分:0)
我同意做Thread.Sleep似乎不适合解决这个问题。问题不在于您的计算,而是演示问题。也许使用某种动画来解决这个问题可以解决你的问题。不确定你在使用什么,但看看这个帖子看看jquery进度动画:
答案 2 :(得分:0)
我最终解决了这个问题。虽然我实际上没有冻结UI,也没有使用thread.sleep。 我进入了最后一个子功能,并将进度报告为100。因此,当它完成该功能时,进度条也达到100.但是需要几毫秒才能返回到dowork功能然后再运行到runworker。它为用户提供了一个窗口,让他们注意到它已完成。谢谢大家!
感谢您的所有努力和建议。