我在后台线程中有一个来自 PRISM 的事件订阅。登录后,我加载了几个与应用程序相关的数据。我也尝试从 Unity Container 中解析 MainMenu。
MainMenu mainMenu = container.Resolve<MainMenu>();
这将以异常结束。必须从 STA 线程调用它,因为这些操作与 GUI 相关。这似乎完全可以理解,但是
- 如果我使用 Dispatcher 没有异常,但它会阻塞 UI 线程,那不是我想要的。
- 使用另一个 BackgroundWorker 或 Task Factory 不会解决问题,因为它仍在后台线程中。
那么如何在后台线程中加载与 GUI 相关的内容呢?