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