69 votes

Quelle est la différence entre Send Message et Post Message et leur lien avec la programmation C #, WPF et Pure Windows?

Quelle est la différence entre Envoyer le Message et le Message ( en termes de pure programmation de windows) et comment ils se rapportent à C# ,WPF et Pur de la programmation sous windows?

Je suis nouveau sur le Filetage et de toutes les choses donc veuillez m'excuser pour d'évidentes quesiton . J'ai besoin de creuser la façade de l'Enfilage .. s'il vous Plaît laissez-moi savoir les liens que m'aider à construire mon concept de la programmation win32 pour WPF.

J'ai besoin de underderstand de message à Afx ( appel à démarrer un nouveau thread ) de déléguer Invok/Commencer à Appeler à l'expéditeur.

89voto

Alex Martelli Points 330805

PostMessage (en "pur de programmation de windows", aka API win32) est asynchrone, c'est à dire, pour citer les docs:

Lieux (postes) d'un message dans la message de la file d'attente associée à l' thread qui a créé le spécifiée fenêtre et retourne sans attendre le thread pour traiter le message.

Pour poster un message dans la file d'attente de messages associé à un thread, utilisez la PostThreadMessage fonction.

SendMessage est synchrone, c'est, pour citer à nouveau:

Envoie le message à un ou les fenêtres. Le SendMessage les appels de fonction de la procédure de fenêtre pour la fenêtre spécifiée et ne pas de retour jusqu'à ce que la procédure de fenêtre a traité le message.

Pour envoyer un message et retour immédiatement, utilisez la SendMessageCallback ou SendNotifyMessage fonction. Pour poster un message à un thread de message de la file d'attente et de revenir immédiatement, utilisez la PostMessage ou PostThreadMessage fonction.

Un bon tutoriel sur ces deux fonctions et leur utilisation est ici.

La connexion à WPF est abordée dans cette SORTE de question.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X