【发布时间】:2013-03-19 18:42:01
【问题描述】:
据我了解并知道 TThread 类的方法,如果您同步代码,它实际上会在主应用程序线程中执行(就像计时器/按钮单击/等) 我一直在玩,并注意到 MessageBox 不会阻止主应用程序,但是 sleep 会按预期进行。这是为什么呢?
type
TTestThread = class(TThread)
private
procedure SynchThread;
protected
procedure Execute; override;
public
constructor Create(CreateSuspended: Boolean);
end;
procedure TTestThread.SynchThread;
begin
MessageBoxA (0, 'Hello', 'Test', 0);
end;
procedure TTestThread.Execute;
begin
Synchronize (SynchThread)
end;
constructor TTestThread.Create(CreateSuspended: Boolean);
begin
inherited;
FreeOnTerminate := True;
end;
procedure StartThread;
var
TestThread : TTestThread;
begin
TestThread := TTestThread.Create (FALSE);
end;
【问题讨论】:
-
解释一下“屏蔽主应用”是什么意思