在Button中创建了n个FreeOnTerminate := True的线程(放在一个线程数组中),在退出程序中结束掉所有线程(有的线程已经执行完退出了,有的线程还在执行):
1. 当用Window的API函数TerminateThread,程序退出时总是出现异常:
"0x67f5d899" 指令引用的 "0x00000004" 内存。该内存不能为 "read"。
2.当使用Terminate时,能够正常退出,可是这个方法是要等待线程结束,如果线程很多的话就要等待很长时间。
现在想找一种方法,能正确的、完全的结束掉所有线程!多谢指教!
1. 当用Window的API函数TerminateThread,程序退出时总是出现异常:
"0x67f5d899" 指令引用的 "0x00000004" 内存。该内存不能为 "read"。
2.当使用Terminate时,能够正常退出,可是这个方法是要等待线程结束,如果线程很多的话就要等待很长时间。
现在想找一种方法,能正确的、完全的结束掉所有线程!多谢指教!
解决方案 »
- 采用存储过程上传的问题
- 请教:用Query查询显示的表格,更新的时候鼠标指针变为沙漏加SQL字样的样子,能改成标准沙漏吗?
- 一个简单的问题,多谢大哥帮忙,DBComboBox怎样动态添加Iitems!
- 小问题大分量 快!!!
- 还是动态生成控件的问题!!
- 请问各位朋友,读工商管理专业找工作容易些呢还是读市场营销找工作容易点
- WebSerice 服务端得到xml文件往数据库写的问题
- 急死人的问题,曾经从未碰过
- 请问怎么样去掉TTREEVIEW里的水平与垂直滚动条?
- 有关ListBox循环的问题!编译总是出错!
- 刚才刮胡子一不小心刮下一大块肉来,我靠疼死我了
- 各位Delphi专家或高手请教一下你们,请帮帮忙...
if terminated then
begin
释放各种资源。。
退出
end;
或者用个timer,隔几秒就判断一次你停止线程的时候,用mythread.terminated,而不用TerminateThread
这样就应该没问题了
不知你明白否
退出的时候把主窗体隐藏,检查IsMultiThread,为False的时候再关闭进程.前提是不是直接用CreateThread API创建线程.
设定一个超时限制,如果超过,TerminateThread那些还没关闭的线程..再退出...CSDN论坛浏览器:http://CoolSlob.ys168.com/