2009-04-16 69 views
2

我正在使用以下單線程公寓。 我無法從線程對象回收內存/其他資源。 Actullay Actullay我想包裹我的線程在try catch和fianlly塊。 嘗試和趕上完成。但我不確定最終會阻止。 我需要在最後的塊中調用哪些代碼,屬性或函數。從線程單線程單元線程索賠資源/內存

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

你引用了哪些資源?線程的底層句柄和線程堆棧或線程分配的資源? – Michael 2009-04-16 17:09:54

回答

1

GC將回收內存,終結器將釋放本地資源。確保這些過程發生的唯一方法是確保不再需要的對象未被引用。

線程除了堆棧之外沒有任何自己的內存/資源,它將被Join關閉線程清除(除非你有與重複的本地線程句柄有關的東西:在這種情況下,當最後一個句柄關閉)。

+0

你的意思是我需要在finally塊中檢查下面的代碼。 終於 { 如果(MyThread的!= NULL) //發佈代碼 //但是我需要什麼功能,來電來訪???? } – 2009-04-16 17:02:16