【问题标题】:How to improve performance of WPF application with multiple background workers如何提高具有多个后台工作人员的 WPF 应用程序的性能
【发布时间】:2012-05-28 16:31:31
【问题描述】:

我有一些 WPF 应用程序,它通过Background Worker 下载文件,同时显示一些动画。

在那一刻动画会定期卡住的主要问题。

我不知道为什么。但是我想我必须降低下载文件的Background Worker的优先级。

知道如何在 WPF 应用程序下更好地合并动画和文件下载吗?

当然,我总是可以设计这个功能,但我的想法是保持一体式瓶子。 :)

有什么好的性能方法吗?

谢谢大家!

【问题讨论】:

  • 不可能从这个问题中猜到,它的记录还不够好。注释掉所有 ReportProgress 调用,看看是否有影响。
  • 我认为你需要进入全线程以获得后台优先级。 social.msdn.microsoft.com/forums/en-US/vblanguage/thread/…
  • @Blam 是的。我有 9 个后台工作人员,他们使用相同的网络连接到 RIA 服务。
  • 然后试试 Erno 的答案并发布一些代码。

标签: c# .net wpf


【解决方案1】:

我的猜测是 9 个 BackgroundWorker 正在排队等待 UI 线程报告进度。

解决方案:

  • less backgroundworkers - 9 是到服务器的大量连接,也许您可​​以尝试在一次调用中加载更多数据。
  • 更少的进度报告 - 如果 UI 线程是瓶颈,您可以让每个后台工作人员设置一个属性并让一个后台工作人员报告所有进度。
  • 更少的动画 - 也会释放 UI 线程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多