我们正在开发一个WPF应用程序,它将同时打开多个报告(就像典型的MDI应用程序一样,如Excel或Visual Studio)。尽管可以在多个工作线程中运行这些报表的数据上下文,但我们仍然发现,如果打开的报表数量真的很大,即使呈现这些报表(基本上是UserControl托管在MDI环境中或仅在主视图中的网格区域中),也会使应用程序的响应速度变慢。
因此,我的想法是至少在主UI中有几个区域,每个区域都将在不同的UI线程中运行其用户控件。同样,想象一下visual studio中的一个典型视图,除了菜单之外,它具有文本编辑器的主区域、承载例如解决方案资源管理器的辅助区域以及承载例如错误列表和输出的底部区域。所以我希望这三个区域在三个UI线程中运行(但它们自然地托管在一个MainView中,这是我不确定的部分)。
我之所以这样问,是因为我知道在不同的UI线程中运行多个(顶级)窗口是可能的。但有人说它不适用于用户控件。是真的吗?如果是这样,我的场景的典型解决方案是什么,即打开的UserControl数量非常大,并且这些UserControl中的许多都是实时的,因此渲染它们需要大量的资源?谢谢!
https://stackoverflow.com/questions/12387687
复制相似问题