线程使用完怎样结束?(10分)

  • 主题发起人 主题发起人 云飘飘
  • 开始时间 开始时间

云飘飘

Unregistered / Unconfirmed
GUEST, unregistred user!
GyroH:=TThreadGyroH.Create(false);
结束时对线程怎么样处理呢 是用terminate free吗 好像有点问题?
 
GyroH.terminate
 
你可以在Create函数中这样写
constructor TThreadGyroH.Create(CreateSuspended: Boolean);
begin
inherited Create(CreateSuspended);
OnTerminate := FreeDo;
// 线程释放时需要执行的函数
// 其它函数;
end;
在FreeDo中处理线程释放时要释放的对象,只要在要退出的地方写明Termanated := True;就可以了。
 
主窗体中,在建线程的前面写:
freeonterminate:=true;
 
一般是调用Terminate[置了freeonterminate:=true时会自动释放],
但有一个条件,就是你必须在Execute中判断Terminated的值,
并适时退出该过程,否则无论你调Terminate还是Free线程都不会立即
结束,而必须等到Execute执行完后才会结束!
 
推荐偶这篇文章:
http://www.csdn.net/develop/Read_Article.asp?Id=22466
 
后退
顶部