我想知道改进我的 WPF 应用程序的最佳解决方案是什么。
我知道 WPF 会强制您在创建 UI 的线程上完成所有 UI 工作。这对我来说是个大问题,因为我的 UI 非常大而且我只有 1 个窗口,所以我不能每个窗口拆分 1 个线程。
当我进行平移和缩放时,每次都需要刷新所有内容,我的一个 CPU 使用率达到 100%,直到全部完成。
因此,我将尝试解释我的应用程序中的内容:
- 1 个窗口(屏幕大小)
- 虚拟面板,12000 px X 12000 px(我在其中进行平移和缩放)
- 大约 2000 个控件(按钮、开关和其他一些复杂控件)
- 在我的控件后面,我的背景有一个大位图,但我将我的背景拆分为我堆叠的 100 个较小的位图(因为 1 个 12k 像素 x 12k 像素的位图会使我的应用程序崩溃)
- 10 个虚拟显示器,连接到远程计算机(提供位图)并每 50 毫秒刷新一次内容
- .NET 4.0,多点触控应用程序
所以只是我可以进行平移和缩放的应用程序(没有 10 个显示器),控件的数量有很多滞后,当我放置显示器时,它会加倍滞后......
我的应用程序需要大约 1.5 GB 的虚拟内存。
我搜索了尽可能使用调度程序来制作线程,但我没有找到我想要的......他们到处谈论 1 个线程/窗口......但我只有 1 个窗口,不知道该怎么做。
- 我不能分成更小的窗口。
- 我无法减少控件的数量或刷新时间。
- 我无法改变技术 (WPF)
所以这是真正的问题:我在哪里可以创建新线程来帮助我的渲染时间?要将作业拆分到不同的 CPU...
我发现他们谈论这个的不同网站......但没有回答我的问题: