delphi 使用postthreadmessage给线程发消息

delphi 使用postthreadmessage给线程发消息,第1张

最近做的一个小工具,需要给线程消息

以前都是用全局变量加锁,然后线程去取来传递消息

后面想用windows消息实现,发现还是挺有意思的

线程间发消息

1,全局变量

2,windows信号

3,windows消息

我主要实现2,3种方法

第二种 主窗口给线程发信号

procedure TForm1.Button12Click(Sender: TObject);
begin
  if m_hMutex = 0 then  //全局信号
    m_hMutex := CreateEvent(nil, FALSE, FALSE, nil);
  if mythread = nil then
  begin
    mythread := TMYThread.Create(True); //创建自定义线程
    mythread.Resume;
    Sleep(1000);
  end;
  SetEvent(m_hMutex);//发送信号

线程中的处理

constructor TMYThread.Create(CreateSuspended: Boolean);
begin
  inherited;
  FreeOnTerminate := True;
  FbPrint := False;
  FbTerminated := False;
end;

destructor TMYThread.Destroy;
begin
  inherited;
end;

procedure TMYThread.Execute;
var
  i: Integer;
  msg: TMsg;
  R: Cardinal;
begin
  i := 0;
  while not FbTerminated do
  begin

    R 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1295874.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存