线程异常该如何处理 windows窗体线程异常怎么解决?
windows窗体线程异常怎么解决?
程序退出的方法:this.Close() 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;Application.Exit() 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程)
Delphi线程中怎么抛出异常?
在Delphi中使用线程,当窗体关闭时,如果窗体中启用了线程,一般需要手动关闭,以释放资源。 常用来结束线程的代码为:
thread.Terminate
thread.WaitFor
即先触发Terminate方法,然后等待线程的结束。这种方法要求线程不能使用
FreeOnTerminate := True
否则在WaitFor即将结束的时候会引发“无效句柄”的错误。 这种方法在窗体关闭的时候会等待一段事件(因为WaitFor)。
因此,如果不是在主窗体中结束线程时,其实我们可以不必使用WaitFor。而是采用如下方法: 将FreeOnTerminate := True这样在窗体关闭的代码中直接调用
thread.Terminate 即可。
注意: 如果设置了 thread.OnTerminate := SomeFunction 那么在调用PcmThrd.Terminate前尽量将thread.OnTerminate := nil,以免结束线程后SomeFunction中的变量出现空指针错误。当然,这不是绝对的,需要根据具体程序而定 .
线程异常该如何处理 winform多线程打开另外窗体 java多线程异常捕获
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。