线程已分配
FreeOnTerminate := true;
我知道它的内存会在它终止时被释放,但是Terminate事件什么时候会发生?
或者,以更通用的方式,何时释放与某个线程相关的内存?
线程已分配
FreeOnTerminate := true;
我知道它的内存会在它终止时被释放,但是Terminate事件什么时候会发生?
或者,以更通用的方式,何时释放与某个线程相关的内存?
当线程被释放时(IOW,当它的析构函数退出时),线程本身的内存也被释放。FreeOnTerminate
只是意味着当线程终止(Execute
方法退出)时,将自动调用析构函数。
线程分配给自己使用的任何内存都应该由线程在其析构函数中释放。
当FreeOnTerminate
为真时,在被调用和退出之后,在被调用和退出之后TThread
释放它自己的内存(调用它自己的析构函数)。所以基本上,一旦被调用(内部触发事件,如果分配)并退出,假设你的对象不再有效,如果为真。TThread.DoTerminate()
TThread.Execute()
DoTerminate()
TThread.OnTerminate
TThread
FreeOnTerminate