请问有那位高手知道怎么用一个单独的线程处理一个窗口消息 ( 积分: 100 )

  • 主题发起人 主题发起人 a_mao_gong
  • 开始时间 开始时间
A

a_mao_gong

Unregistered / Unconfirmed
GUEST, unregistred user!
具体问题是这样的:我有一个窗口消息专门用来处理接收的数据,因为数据量大,所以对主线程的影响比较大,我现在想用一个单独的线程单独来处理这个消息,不知道怎么实现起来比较好。我现在想到的办法是,一收到这个消息就建一个线程专门处理数据,消息处理完后线程自动释放。不过我觉得要是能建立一个线程用来接收并且处理这个消息就最好了,但不知道怎么做比较适合
注:数据处理没有对界面进行操作。
 
具体问题是这样的:我有一个窗口消息专门用来处理接收的数据,因为数据量大,所以对主线程的影响比较大,我现在想用一个单独的线程单独来处理这个消息,不知道怎么实现起来比较好。我现在想到的办法是,一收到这个消息就建一个线程专门处理数据,消息处理完后线程自动释放。不过我觉得要是能建立一个线程用来接收并且处理这个消息就最好了,但不知道怎么做比较适合
注:数据处理没有对界面进行操作。
 
根本没有必要建立一个线程用来接收并且处理这个消息,欲知详情请联系MSN:pengdonghui@hotmail.com。
 
//重载窗体消息处理
procedure WndProc(var Message: TMessage);
override;

procedure TForm1.WndProc(var Message: TMessage);
begin
if (Message.Msg = WM_MyMessage) then
//WM_MyMessage为收到你要处理数据时对应的消息
TDealRecDataThread.Create(False) //TDealRecDataThread为你处理接收到的数据的线程类
else
inherited WndProc(Message);
end;
 
dear12399的方法不可取,WndProc里面要处理的消息太多,如果不是用一个专门的线程处理而是跟我一样来一个消息建立一个线程的话,就不如在窗口的消息处理过程中使用线程来处理数据了。
 
后退
顶部