在Button中创建了n个FreeOnTerminate := True的线程(放在一个线程数组中),在退出程序中结束掉所有线程(有的线程已经执行完退出了,有的线程还在执行):
1. 当用Window的API函数TerminateThread,程序退出时总是出现异常:
"0x67f5d899" 指令引用的 "0x00000004" 内存。该内存不能为 "read"。
2.当使用Terminate时,能够正常退出,可是这个方法是要等待线程结束,如果线程很多的话就要等待很长时间。
现在想找一种方法,能正确的、完全的结束掉所有线程!多谢指教!
1. 当用Window的API函数TerminateThread,程序退出时总是出现异常:
"0x67f5d899" 指令引用的 "0x00000004" 内存。该内存不能为 "read"。
2.当使用Terminate时,能够正常退出,可是这个方法是要等待线程结束,如果线程很多的话就要等待很长时间。
现在想找一种方法,能正确的、完全的结束掉所有线程!多谢指教!
if terminated then
begin
释放各种资源。。
退出
end;
或者用个timer,隔几秒就判断一次你停止线程的时候,用mythread.terminated,而不用TerminateThread
这样就应该没问题了
不知你明白否
退出的时候把主窗体隐藏,检查IsMultiThread,为False的时候再关闭进程.前提是不是直接用CreateThread API创建线程.
设定一个超时限制,如果超过,TerminateThread那些还没关闭的线程..再退出...CSDN论坛浏览器:http://CoolSlob.ys168.com/