如何在UWP中找到主窗口线程



我有一个库,当它接收到来自通信通道的消息时,需要调用UWP中的主窗口线程(比如说,应该选中一条指示复选框的消息(。该库在启动时会保存SynchronizationContext的副本,这样当数据进入时它就可以发布回它,但问题是,我不能保证该库的调用方在初始化时在主线程上。

是否有一些简单、有保证的方法可以获得主窗口线程(即Windows的SynchronizationContext(,这样我就不需要依赖调用方来确保上下文不会切换?

当你选择了错误的窗口/线程时,试图将某些东西推到"主窗口线程"上最终会失败。更好的设计是让库公开一个事件,然后任何使用者(包括主窗口(都可以监听该事件,并为自己进行适当的线程编组(如果有的话(。

如果你绝对必须得到"主窗口",那么CoreApplication.MainView.CoreWindow就会做到。

最新更新