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