从线程单线程单元线程中声明资源/内存

时间:2009-04-16 16:40:19

标签: c# multithreading try-catch-finally

我正在使用以下单线程公寓。 我无法从线程对象中回收内存/其他资源。 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??????
}

1 个答案:

答案 0 :(得分:1)

GC将回收内存,终结器将释放本机资源。确保这些过程发生的唯一方法是确保不再需要的对象是未引用的。

一个线程除了它的堆栈之外没有它自己的任何内存/资源,它将被Join关闭线程清理(除非你有一些东西搞乱复制本机线程句柄:在这种情况下,当最后一个句柄已关闭)。