我正在编写一个数独求解器应用程序。求解器的计算时间在某些情况下可能会超过 3 秒,这将需要一个进度条。
所以我的代码:
private void solveButton_Click(object sender, RoutedEventArgs e)
{
progressBar1.Visibility = Visibility.Visible;
progressBar1.IsIndeterminate = true;
mySolver.Solve(initialValue)
progressBar1.Visilibity=Visilibity.collapsed;
progressBar1.IsIndeterminate = false;
}
这里的代码是我实际代码的精简版。此代码不起作用,因为进度条根本不出现。在我看来,UI 仅在事件执行完成后才会更新。如果我在求解器步骤后没有隐藏进度条,则在解决数独后会出现进度条。用 thread.sleep(1000) 替换求解器也会导致相同的 UI 更新。
感谢您的帮助。
最佳答案
您应该在单独的线程上启动求解器。这样,即使在求解过程中,用户界面线程也可以继续处理用户界面对象,从而可以在屏幕上绘制并更新进度条。
关于c# - 长时间运行函数的进度条 WP7 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7094487/