首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

基础常识有关问题,关于消息

2012-09-27 
基础常识问题,关于消息。Delphi(Pascal) codeprivateprocedure SyncCall(var Msg: TMessage) message WM_U

基础常识问题,关于消息。

Delphi(Pascal) code
private    procedure SyncCall(var Msg: TMessage); message WM_USER;  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin  SyncCall();//直接调用过程  //通过消息触发过程  SendMessage(Handle, WM_USER, Longint(stMessage), Longint(Data));end;procedure SyncCall();beginend;procedure TForm1.SyncCall(var Msg: TMessage);beginend;

以上两种方式有何区别??
1:直接调用过程
2:通过发送消息触发过程
在我的理解是:直接调用和发送消息因为没有用到多线程,都得在执行完了SyncCall函数后才能进行其它操作?
不知道这样理解是否正确?

[解决办法]
单线程作业的Project,大多数情况下不需要使用消息来专门调用某个过程,直接调用就行了,多线程用消息转一下通常是为了告诉界面一些信息,比如作完了,作到30%了,发生错误了等等,好让界面上显示某些信息。
[解决办法]
发消息会触发WndProc,如果操作不当会导致堵塞,直接调用就只是把它当成一个子处理模块,应该比较快。。

热点排行