发送消息和发送消息之间有什么区别,它们与C#,WPF和Pure Windows编程有何关系?


71

在纯Windows编程方面,“发送消息”和“发布消息”之间有何区别?它们与C#,WPF和纯Windows编程有何关系?

我是Threading和其他所有相关知识的新手,所以请原谅我明显的疑问。我需要挖掘Threading的外部因素。.请让我知道帮助我从Win32编程到WPF构筑概念的链接。

我需要理解从Post消息到Afx(调用以启动一个新线程)将Invok / Begin Invoke委托给Dispatcher的过程。

Answers:


90

PostMessage(在“纯Windows编程”中,也称为win32 API)是异步的,即引用文档:

将消息放置(张贴)在与创建指定窗口的线程关联的消息队列中,并返回消息,而无需等待线程处理消息。

要将消息发布到与线程关联的消息队列中,请使用PostThreadMessage函数。

SendMessagesync,即再次引用:

将指定的消息发送到一个或多个窗口。SendMessage函数调用指定窗口的窗口过程,直到该窗口过程处理完该消息后才返回。

要发送消息并立即返回,请使用SendMessageCallback或SendNotifyMessage函数。要将消息发布到线程的消息队列中并立即返回,请使用PostMessage或PostThreadMessage函数。

关于这两个函数及其用法的一个很好的教程在这里

这个SO问题中讨论了与WPF的连接。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.