0

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

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

但是,当我添加该调用时,我的窗口不会弹出——该应用程序实际上是后台运行的,我必须使用任务管理器将其关闭。

我真的很困惑,我什至不知道如何调查它。任何帮助将不胜感激。

4

1 回答 1

1

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

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

于 2011-04-08T03:42:11.383 回答