【发布时间】:2012-01-12 11:49:07
【问题描述】:
我需要知道,在 Delphi 7 中使用线程 (TThread) 时,如果我强行终止该进程,该线程是 terminated 还是会继续运行?
我的执行过程如下所示,如果线程被终止,那么它将停止。但是如果线程从未被正式终止呢?
procedure TJDApplicationThread.Execute;
var
ST: Integer;
begin
ST:= 5;
fStop:= False;
while (not Terminated) and (not fStop) do begin
//----- BEGIN -----
Synchronize(DoSync);
//----- END -----
//Sleep(1000 * ST);
end;
end;
【问题讨论】:
-
(我从线程执行中排除了所有不相关的功能)
-
问题在下面回答,主要问题是如果
Terminated从未设置为true,我只是害怕这个东西会卡住运行。 -
当你杀死进程时,进程拥有的所有东西,包括线程也会被杀死。 Terminated 属性无关紧要。系统只会杀死一切。无话可问。现在,更大的问题是你为什么要杀死进程。最好让他们关闭。
-
好吧,我不是进程杀手,但有时进程是如此顽固,我别无选择,只能杀死它们。
-
事实上,这还包括在调试应用程序的过程中使用“程序重置”。
标签: multithreading delphi process delphi-7 destructor