我有一个库,当它接收到来自通信通道的消息时,它需要调用UWP中的主windows线程(比方说,应该选中一个复选框的消息)。该库在启动时会保存SynchronizationContext的一个副本,因此可以在数据传入时回发到该库,但问题是,我不能保证在初始化该库时,该库的调用者是否在主线程上。
有没有什么简单、可靠的方法来获取主窗口线程(也就是窗口的SynchronizationContext),这样我就不需要依赖调用者来确保上下文不会切换?
发布于 2018-07-31 06:45:02
当你选择了错误的窗口/线程时,尝试将一些东西推到“主窗口线程”上最终会失败。更好的设计是让库公开一个事件,然后任何使用者(包括主窗口)都可以侦听该事件,并为自己执行适当的线程编组(如果有的话)。
如果你一定要得到“主窗口”,那么CoreApplication.MainView.CoreWindow
会做到的。
https://stackoverflow.com/questions/51602879
复制相似问题