windows - Venter på meddelelser i administreret kode

Indlæg af Hanne Mølgaard Plasc

Problem



Dette er tæt knyttet til et tidligere spørgsmål.


I den forvaltede verden:



  • Hvordan kontrollerer jeg om den aktuelle tråd
    har meddelelser i sin meddelelseskø?

  • Hvordan giver jeg til OS og venter
    for en besked i den aktuelle tråd
    (som GetMessage eller WaitMessage)?



Jeg leder efter de administrerede ækvivalenter uden PInvoke.

Bedste reference


Du kan bruge funktionen AddMessageFilter. [2]


Jeg tror ikke, der er en blokerende måde, hvordan man gør det uden P/Invoke, da det er ud over intentioner af .NET.

Andre referencer 1


Du kan tilsidesætte WndProc og derefter slukke din egen begivenhed, når den bliver kaldt. Dette vil selvfølgelig ikke blokere. Hvis du vil blokere indtil en besked, kan du have en metode i en anden tråd, der venter på et synkroniseringsobjekt og har WndProc-signalet, der objekt.