Ожидание сообщений в управляемом коде - PullRequest
1 голос
/ 09 января 2009

Это тесно связано с более ранним вопросом .

В управляемом мире:

  • Как проверить, есть ли текущая тема? есть сообщения в очереди сообщений?
  • Как мне уступить ОС и ждать для сообщения в текущей теме (например, GetMessage или WaitMessage)?

Я ищу управляемые эквиваленты без PInvoke.

Ответы [ 2 ]

3 голосов
/ 09 января 2009

Вы можете переопределить WndProc, а затем запустить собственное событие, когда оно будет вызвано. Это, конечно, не будет блокировать. Если вы хотите заблокировать до сообщения, вы можете иметь метод в другом потоке, ожидающий объект синхронизации и иметь сигнал WndProc об этом объекте.

0 голосов
/ 09 января 2009

Вы можете использовать функцию AddMessageFilter.

Я не думаю, что есть блокирующий способ сделать это без P / Invoke, поскольку это выходит за рамки .NET.

...