主程序会关闭所有子线程,如一定要自己关,正常情况下应该用TThread的Terminate来停止线程,在线程的Execute中的循环里每次判断Terminated是否为true是则退出即可。强行终止线程可以用TerminateThread这个API,但它不会FREE线程类,如果手工FREE则会因为线程已终止而出错,建议不要这样用。
解决方案 »
- Web Service与COM实现的ISAPI中的超怪问题,实在是搞不定了,请各位高手帮忙!!!
- 想做一bitbtn組件,該組件設計好後,按組件click能動態調用一表單,該表單的主要作用是查詢database任意sql表任意field,
- 程序調試和發布的問題,請指教
- 开发IE组件实现打开WORD和保存,紧急
- 在SQLSERVER65下建表,报错,应该是格式问题,大家看看
- 为什么出错(在线等候)?
- 数据库表名传递问题
- 关于dbgride的问题
- 大虾请进,为小辈看看这个代码,我提问,必定给分
- delete键怎么就锁不住的呢
- 关于远程数据传输的问题,用拨号上网的方式实现断点续传(用Delphi),敬请高手回答??
- Delphi应用程序安装设置问题???
在线程里又怎么调用判断terminated呢?我不知道在本线程里怎么读出自己的属性,在java里
使用this.xxxx可以查看修改本身属性,在delphi里是什么?线程里退出的指令又是什么?exit?
return?break?
Procedure TMyThread.Execute;
Begin
While ( Not Terminated ) AND ( your condition ) Do
Begin
your code...
End;
End;Execute 执行完后线程就终止了,如果FreeOnTerminate 属性为 true 则线程终止时,同时自动释放线程对象。
Delphi里与JAVA的this对应的是Self