1

这与之前的一个问题密切相关。

在托管世界中:

  • 如何检查当前线程的消息队列中是否有消息?
  • 如何屈服于操作系统并等待当前线程中的消息(如 GetMessage 或 WaitMessage)?

我正在寻找没有 PInvoke 的托管等效项。

4

2 回答 2

3

您可以覆盖 WndProc,然后在它被调用时触发您自己的事件。当然,这不会阻塞。如果您想在收到消息之前一直阻塞,您可以在另一个线程中使用一个方法等待同步对象,并让 WndProc 向该对象发出信号。

于 2009-01-09T06:11:10.890 回答
0

您可以使用AddMessageFilter 函数。

我不认为在没有 P/Invoke 的情况下如何做到这一点的阻塞方式,因为它超出了 .NET 的意图。

于 2009-01-09T06:36:18.267 回答