Давным-давно, когда я начал работать с потоками в 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
?
EDIT. После ответа Sedat, я думаю, это действительно зависит от того, когда в конструкторе фактически начинает выполняться поток.