我在 Delphi 中有一个代码,它执行以下操作:
procedure THilo.Execute; // (which is the thread)
begin
inherited;
FreeOnTerminate := True;
while not Terminated do
begin
(...)
Sleep(100);
end;
end;
现在在其他地方,在另一个线程(或 GUI)中,我们这样做:
var
Hilo2: THilo;
begin
Hilo2 := THilo.Create(True);
Hilo2.start;
Hilo2 := THilo.Create(True);
Hilo2.start;
end;
现在我们已经执行了 2 次同一个线程,它们是并行运行的。如果我们现在这样做会发生什么?:
Hilo2.Terminate;
这会终止两个线程还是仅终止 1 个线程,还是什么?另外,如果我们想终止它,我们可以通过.Resume() 来实现吗?
提前致谢