我正在使用以下单线程公寓。 我无法从线程对象中回收内存/其他资源。 Actullay我想把我的线程包裹在try catch和fianlly block中。 试着抓住了。但我不确定最后阻止。 我需要在finally块中调用什么代码,属性或函数。
System.Threading.Thread myThread = null;
try
{
myThread = new System.Threading.Thread(functionAddressETC)
myThread .SetApartmentState(System.Threading.ApartmentState.STA);
myThread .Start();
myThread .Join();
}
catch(Exception ex)
{}
finally
{
// I need help in finally block. I need to reclaim all my resources
//what function do i need to call here??????
}
答案 0 :(得分:1)
GC将回收内存,终结器将释放本机资源。确保这些过程发生的唯一方法是确保不再需要的对象是未引用的。
一个线程除了它的堆栈之外没有它自己的任何内存/资源,它将被Join关闭线程清理(除非你有一些东西搞乱复制本机线程句柄:在这种情况下,当最后一个句柄已关闭)。