Ожидание сообщений в Управляемом коде
-
06-07-2019 - |
Вопрос
Это тесно связано с предыдущий вопрос.
В управляемом мире:
- Как мне проверить, есть ли в текущем потоке сообщения в его очереди сообщений?
- Как мне уступить операционной системе и дождаться сообщения в текущем потоке (например, GetMessage или WaitMessage)?
Я ищу управляемые эквиваленты без PInvoke.
Решение
Вы можете использовать Добавьте функцию messagefilter.
Я не думаю, что есть блокирующий способ сделать это без P / Invoke, поскольку это выходит за рамки намерений .NET.
Другие советы
Вы могли бы переопределить WndProc, а затем запустить свое собственное событие при его вызове.Это, конечно, не было бы блокировкой.Если вы хотите заблокировать до получения сообщения, у вас мог бы быть метод в другом потоке, ожидающий объект синхронизации, и заставить WndProc сигнализировать об этом объекте.
Не связан с StackOverflow