很久以前,当我开始在 Delphi 中使用线程时,我通过TThread.Resume
在构造函数的末尾调用来让线程自己启动,并且仍然这样做,如下所示:
constructor TMyThread.Create(const ASomeParam: String);
begin
inherited Create(True);
try
FSomeParam:= ASomeParam;
//Initialize some stuff here...
finally
Resume;
end;
end;
从那时起,Resume
已被弃用,Start
取而代之的是。但是,Start
只能从线程外部调用,不能从构造函数内部调用。
我继续使用Resume
如上所示设计我的线程,尽管我知道它已被弃用 - 只是因为我不想Start
从线程外部调用。我觉得不得不打电话有点乱:
FMyThread := TMyThread.Create(SomeParamValue);
FMyThread.Start;
问题:进行此更改的原因是什么?我的意思是Resume
,他们希望我们使用的使用有什么问题Start
?
编辑在 Sedat 的回答之后,我想这真的取决于在构造函数中线程何时真正开始执行。