这与一个密切相关 先前的问题.

在受管理的世界中:

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

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

有帮助吗?

解决方案

您可以使用 添加消息过滤器函数。

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

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top