我有一个需要向用户提供反馈的WPF应用程序。我使用WPF窗口(进度窗口),其中包含几个我尝试使用的更新进度条:
两者都表现相同。 [演示申请书下载] [1]
如果我每次循环更新进度值,性能会非常慢。根据我更新进度值的频率,它会变得更好。
演示应用程序给了我以下时间:
Interval Overall Loop Time
1 23:46 seconds
10 3:09 seconds
100 :42 seconds
1000 :05 seconds
我想通过处理循环每次报告进度。怎么办?
在我的真实"应用程序处理循环执行大量处理,但更新每个工作单元的进度条很慢。
答案 0 :(得分:1)
设计需要进行处理的行为良好的应用程序的一般方法是,应该在另一个线程上完成工作,并将周期性消息发布回UI以在进度上更新它。 BackgroundWorker可能适合您的应用程序 - https://msdn.microsoft.com/en-us/library/cc221403%28v=vs.95%29.aspx?f=255&MSPPError=-2147217396