怎么安全关闭线程,我在
TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
if assigned(RecvThread) then RecvThread.Free;
if assigned(RecvThread2) then RecvThread2.Free;
if assigned(RecvThread3) then RecvThread3.Free;
if assigned(RecvThread4) then RecvThread4.Free;
if assigned(RecvThread5) then RecvThread5.Free;
if assigned(GetThread) then GetThread.Terminate;
if assigned(GetThread2) then GetThread2.Terminate;
if assigned(SendThread) then SendSThread.Terminate;
if assigned(SendThread2) then SendThread2.Terminate;
if assigned(SendThread3) then SendThread3.Terminate;
这里释放线程,抱线程句柄无效,怎么才能关闭这些线程,让应用正常退出。
TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
if assigned(RecvThread) then RecvThread.Free;
if assigned(RecvThread2) then RecvThread2.Free;
if assigned(RecvThread3) then RecvThread3.Free;
if assigned(RecvThread4) then RecvThread4.Free;
if assigned(RecvThread5) then RecvThread5.Free;
if assigned(GetThread) then GetThread.Terminate;
if assigned(GetThread2) then GetThread2.Terminate;
if assigned(SendThread) then SendSThread.Terminate;
if assigned(SendThread2) then SendThread2.Terminate;
if assigned(SendThread3) then SendThread3.Terminate;
这里释放线程,抱线程句柄无效,怎么才能关闭这些线程,让应用正常退出。
着被线程打开的文件可能没被关闭或申请的内存没被释放。
主进程请求中止线程
YouThread.Terminate //结果将线程属性Terminated置true在线程的EXECUTE方法中:随时查看属性Terminated,若为true,立即中止EXECUTE线程创建CREATE方法中:
属性FreeOnTerminate=true
线程执行完EXECUTE后,线程对象将被自动删除,并释放所占用的资源。