我有一个使用非WPF供应商库的WPF应用程序。我的应用程序没有接收到库触发的任何事件。我被告知这是因为我需要一个消息泵。
在另一个(非常相似的)问题中,接受的答案建议使用System.Windows.Threading.Dispatcher.Run()。
当我加入这个调用时,我的窗口不会弹出——应用程序实际上是后台的,我必须用任务管理器关闭它。
我真的被难住了,我甚至不知道如何调查它。
如果您使用WPF,那么您已经有了一个通知,没有其他方法可以获得任何Windows通知。每个WPF应用程序都在主线程上调用Application.Run()。它通常隐藏得很好,在bindebugapp.g.cs源代码文件中自动生成。Application.Run()依次调用Dispatcher.Run()
你的供应商是正确的,没有消息循环,许多COM组件会变得紧张。但既然你有一个,你就需要在其他地方寻找问题。