如何立即终止线程

yyfly 2004-02-07 10:12:54
在线程的 Execute 方法中这样写:
while not Terminated do
begin
...
self.Terminate;
...
end;

但是用self.Terminate;不会立刻终止,我想在那个位置立刻终止线程
应该怎么做,并且要安全的终止.
...全文
1114 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ebensy 2004-08-18
  • 打赏
  • 举报
回复
你领悟能力真不太好.
在线程的 Execute 方法中这样写:
while not Terminated do
begin
...
self.Terminate;
if self.terminated then exit;
...
end;
haoguozhong 2004-07-26
  • 打赏
  • 举报
回复
同意: qin0036(frank)
xiaolei_418 2004-07-26
  • 打赏
  • 举报
回复
TerminateThread

ExitThread
tsst 2004-07-26
  • 打赏
  • 举报
回复
如果是手动的非要结束的话,那就只能作用API 如exitthread
tsst 2004-07-12
  • 打赏
  • 举报
回复
使用windows API
Function TerminateThread(hThread:Thandle;dwExitCode:DWORD);
不过,这个函数会使代码立刻终止,而不管程序中有没有
workers 2004-07-12
  • 打赏
  • 举报
回复
break;
wolf2005 2004-07-12
  • 打赏
  • 举报
回复
FreeOnTerminate := true;
ly_liuyang 2004-07-12
  • 打赏
  • 举报
回复
没错了
直接API才能解决问题
qin0036 2004-07-12
  • 打赏
  • 举报
回复
如果使用 TThread 类,不可能立即中止线程。使用 Terminate 方法只是设置线程类里面的一个 Terminated 标志。要想快点结束线程,要在 Execute 函数里面多加对 Terminated 标志的判断。如果非要立即结束线程,就不能使用 TThread 类,改成使用 windows 的 api 直接操作线程,使用 CreateThread, ExitThread.
haoguozhong 2004-06-25
  • 打赏
  • 举报
回复
怎么用?能否说的具体些?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧