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

时间:2011-04-08 03:00:38

标签: wpf com message-pump

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

another (very similar) question中,使用System.Windows.Threading.Dispatcher.Run()建议接受的答案。

但是,当我添加该通话时,我的窗口不会弹出 - 应用程序有效地后台运行,我必须使用任务管理器关闭它。

我真的很难过,我甚至不确定如何调查它。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果你使用WPF,你已经有了一个,没有别的办法可以获得任何Windows通知。每个WPF应用程序都在主线程上调用Application.Run()开始。它通常很好地隐藏,在bin \ debug \ app.g.cs源代码文件中自动生成。 Application.Run()依次调用Dispatcher.Run()

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