À espera de mensagens em código gerenciado
-
06-07-2019 - |
Pergunta
Isto está intimamente relacionado a um anteriormente questão .
No mundo geridos:
- Como posso verificar se o segmento atual tem mensagens em sua fila de mensagens?
- Como posso ceder à OS e espera para uma mensagem no thread atual (Como GetMessage ou WaitMessage)?
Eu estou procurando os equivalentes geridos sem PInvoke.
Solução
Você pode usar o href="http://msdn.microsoft.com/en-us/library/system.windows.forms.application.addmessagefilter.aspx" rel="nofollow noreferrer"> função AddMessageFilter
Eu não acho que há uma maneira de bloqueio como fazer isso sem P / Invoke, uma vez que está além intenções de .NET.
Outras dicas
Você poderia substituir WndProc e, em seguida, disparar o seu próprio evento quando ele é chamado. Isto, naturalmente, não seria de bloqueio. Se você deseja bloquear até que uma mensagem, você poderia ter um método em outro espera linha em um objeto de sincronização e têm o sinal WndProc esse objeto.