Terminate是请求结束一个线程,那么如何真正结束一个线程呢? 直接调用Windows Api,比如Postmessage之类的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 申明:function TerminateThread(hThread:THandle;dwExitCode:DWORD);TerminateThread(MyHosedThread.Handle,0)............ <delphi'5 developer guide> 用ExitThread比较好,会给你释放资源,用TerminateThread强行结束线程可能导致资源泄漏,一般不要使用! procedure TYourThread.Execute;begin while .... do begin ....//Do your want to do if Terminate then break; //循环检查Terminate end;end; 推荐通过让线程运行结束返回的方法结束线程. 仅当你确切知道该线程的作用和该线程在结束时可能运行的代码的时候调用TerminateThread 来结束线程. 不然后果是它的初始化堆栈没有被释放, 占用的临界区没有释放,连接到该线程的 DLLs 没有知道该线程要结束, 而且如果目标线程管理着一个共享 DLL 的全局状态, 则该 DLL 的状态可能被毁坏, 影响到其他的 DLL 用户. delphi 5 不能进行单步调试了 请教FastReport3的安装问题。 要用Delphi做个软件(急用,分不够还可以再加) 帮忙做个聊天软件啊………… 请教关于流的问题。 关于tqrchart 大家运行时换肤,用的都是哪个控件呢? 打开一个窗体时怎样使窗体内的Query指向一条特定的记录 怎么样生成这样一个组件:把一个DbGrid放到一个panel上? Exception EDBEngineError in module ***.exe 我的问题从TControl开始。 如何按着ListBox的某一Item上下移动它的位置。
TerminateThread(MyHosedThread.Handle,0)
............
<delphi'5 developer guide>
用TerminateThread强行结束线程可能导致资源泄漏,一般不要使用!
begin
while .... do begin
....//Do your want to do
if Terminate then break; //循环检查Terminate
end;
end;
仅当你确切知道该线程的作用和该线程在结束时可能运行的代码的时候调用TerminateThread 来结束线程. 不然后果是它的初始化堆栈没有被释放, 占用的临界区没有释放,连接到该线程的 DLLs 没有知道该线程要结束, 而且如果目标线程管理着一个共享 DLL 的全局状态, 则该 DLL 的状态可能被毁坏, 影响到其他的 DLL 用户.