WPF应用程序调用需要消息泵的API;Dispather.Run()会导致问题



我有一个使用非WPF供应商库的WPF应用程序。我的应用程序没有接收到库触发的任何事件。我被告知这是因为我需要一个消息泵。

在另一个(非常相似的)问题中,接受的答案建议使用System.Windows.Threading.Dispatcher.Run()。

当我加入这个调用时,我的窗口不会弹出——应用程序实际上是后台的,我必须用任务管理器关闭它。

我真的被难住了,我甚至不知道如何调查它。

如果您使用WPF,那么您已经有了一个通知,没有其他方法可以获得任何Windows通知。每个WPF应用程序都在主线程上调用Application.Run()。它通常隐藏得很好,在bindebugapp.g.cs源代码文件中自动生成。Application.Run()依次调用Dispatcher.Run()

你的供应商是正确的,没有消息循环,许多COM组件会变得紧张。但既然你有一个,你就需要在其他地方寻找问题。

最新更新