Delphi
中多线程用消息实现
VCL
数据同步显示
Lanno Ckeeke
2006-5-12
概述:
delphi中严格区分主线程和子主线程,主线程负责GUI的更新,子线程负责数据运算,当数据运行完毕后,子线程可以向主线程式发送消息,以便通知其将VCL中的数据更新。
实现:
关键在于消息的发送及接收。在消息结构Tmessage中wParam和lParam类型为Longint,而指针类型也定义为Longint,可以通过此指针来传递自己所感兴趣的数据。如传递字符数组:
数组定义:
const
MAX_LEN = 260;
szName : array[0..MAX_LEN] of Char;
|
消息发送方式:
PostMessage(Form1.Handle,WM_UPDATEDATA,Integer(PChar(@szName)),0);
消息接收方式:
procedure TForm1.WMUpdateData(var msg : TMessage);
begin
self.ShowData.Items.Add(PChar(msg.WParam));
|