Delphi Dll线程使用Synchronize同步导致线程假死的解决方法

来源:互联网 发布:淘宝万能差评 编辑:程序博客网 时间:2024/05/30 05:40

经试验可以在dll工程文件中加入以下语句 :

Application.Initialize;

if Application.Handle = 0 then
begin
    Application.CreateHandle;
end;

Application.Run;

解决线程中使用Synchronize 假死的问题,或者在线程中直接使用SendMessage替代Synchronize同步。

原因在于若工程文件是DLL而不是EXE的话,Application默认不创建窗口句柄,因此Synchronize向Application发送消息根本无法响应,手动创建句柄,并让其进入消息循环状态可以解决

原创粉丝点击