Je me demandais quelle était la différence entre appeler SendMessage (qui bloque) et appeler PostMessage en conjonction avec WaitForSingleObject. Des idées ?
Réponses
Trop de publicités?SendMessage()
peut être refusé si vous l'appelez dans le contexte d'un appel COM, où l'objet COM vit dans un STA (les appels sont distribués à travers la pompe de messages). PostMessage()
n'est pas soumis aux règles des appartements COM.
De plus, PostMessage()
place le message à la fin de la file d'attente de messages de la fenêtre. SendMessage()
contourne la file d'attente. Vous pouvez trouver une discussion plus approfondie sur les files d'attente de messages sur le blog de Raymond Chen The Old New Thing.
Mon point est qu'il y a plus de différences entre SendMessage()
et PostMessage()
qu'il n'y paraît. Je recommande vraiment de parcourir le blog de Raymond, car il a couvert de nombreuses erreurs au fil des ans.