这与之前的一个问题密切相关。
在托管世界中:
- 如何检查当前线程的消息队列中是否有消息?
- 如何屈服于操作系统并等待当前线程中的消息(如 GetMessage 或 WaitMessage)?
我正在寻找没有 PInvoke 的托管等效项。
这与之前的一个问题密切相关。
在托管世界中:
我正在寻找没有 PInvoke 的托管等效项。
您可以覆盖 WndProc,然后在它被调用时触发您自己的事件。当然,这不会阻塞。如果您想在收到消息之前一直阻塞,您可以在另一个线程中使用一个方法等待同步对象,并让 WndProc 向该对象发出信号。
您可以使用AddMessageFilter 函数。
我不认为在没有 P/Invoke 的情况下如何做到这一点的阻塞方式,因为它超出了 .NET 的意图。