另类理解SendMessage和PostMessage

简介: class procedure TFWaitForm.Execute(const AMsg: string);begin01.  with TFWaitForm.Create(Application) do  begin02    aniMain.
class procedure TFWaitForm.Execute(const AMsg: string);
begin
01.  with TFWaitForm.Create(Application) do
  begin
02    aniMain.Active := true;
03    PostMessage(Handle, WM_CLOSE, 0, 0);
04    Msg := AMsg;
05    Show;
06    SendMessage(Handle, WM_KEYDOWN, 13, 0);
07    Refresh;
  end;
end;

另类解释下这段代码

有一次,银行内部正在忙着执行某个上级下达的命令(01.程序开始执行),取钱窗口是关闭的,有个老百姓来取钱(03.PostMessage发送过来的WM_CLOSE消息),就自觉地排队等待着。慢慢地等待着。后来来了一个当官的有钱人(06.SendMessage发送过来的WM_KEYDOWN消息),银行看到来了贵宾,马上叫到,来来来,我马上帮你办理,这样当官的就插到第一个,银行开窗帮他办理后,当官的走了,然后,对着老百姓说,你们继承等着,还没有忙完。等到全部忙完(07程序执行完毕...如果只是个子过程,还要等父过程执行完毕),然后再给老百姓一个个的办理。
这就是为什么SendMessage可以马上拿到结果,而PostMessage不能拿到及时的结果的原因。

呵呵!
目录
相关文章
|
消息中间件 安全 API
C#实现操作Windows窗口句柄:SendMessage/PostMessage发送系统消息、事件和数据【窗口句柄总结之二】
SendMessage/PostMessage API 可以实现发送系统消息,这些消息可以定义为常见的鼠标或键盘事件、数据的发送等各种系统操作......
5929 1
C#实现操作Windows窗口句柄:SendMessage/PostMessage发送系统消息、事件和数据【窗口句柄总结之二】
|
7月前
|
Windows
window消息处理模块
window消息处理模块
|
存储 容器 数据格式
DuiLib消息处理剖析
本来想自己写写duilib的消息机制来帮助duilib的新手朋友,不过今天发现已经有人写过了,而且写得很不错,把duilib的主干消息机制都说明了,我就直接转载过来了,原地址:http://blog.
1723 0
|
消息中间件 C++ UED
VC++ SendMessage和PostMessage使用总结
VC++ SendMessage和PostMessage使用总结
519 0
|
存储 Java
Handler进击之探索sendMessage的奇妙
Handler进阶之sendMessage  本文主要进一步的探索Handler,主要介绍下Handler是如何发送消息的?  用过Handler的想必对一下几个方法都不会陌生: sendMessage(Message msg);//立刻发送消息 s...
1116 0