GC.SuppressFinalize與可正常不可終結對象相同的可終止對象?下面的代碼似乎證明他們區別對待,無論是在.NET 2和4: class Class1 {
public Class1()
{
GC.SuppressFinalize(this);
}
//~Class1() { }
}
class Program
{
破壞者是奇怪。我試圖通過使用'智能'引用管理來消除使用一次性模式的需要,確保垃圾收集器可以在正確的時間收集對象。在我的一個析構函數中,我不得不等待來自另一個對象的事件,我注意到它沒有。應用程序簡單地關閉,析構函數在執行過程中被終止。 我希望一個析構函數總是被允許完成運行,但是如下面的測試表明這是不正確的。 using System;
using System.Diagnostics;
usin
我有一個視圖(用戶控件),其中有選項卡控件和選項卡項。當應用程序關閉時,我想刪除所有選項卡項目,爲此我創建了一個調用RemoveAllTabItems函數的終結器。但是,當我試圖訪問選項卡控件項時出現錯誤:「調用線程無法訪問此對象,因爲不同的線程擁有它。」我試圖通過使用選項卡控制調度程序來修復錯誤,但通過執行此操作,不會調用remove函數。爲了說明 樣品的編號: private void Rem
我正在嘗試編寫一個Java單元測試,用於測試對終結器調用對象的影響。 爲了確保終結器被調用,我使用了一個WeakReference方法,我在其他地方看到了stackoverflow。 我的問題是,在本次測試TestFinalizer的finalize方法不會被調用即使WeakReference的只是一個迭代後出現空: public class FinalizerTest {
priva
我們正在與第三方遺留系統一起工作,該系統需要對某些拆除邏輯具有線程關聯性。我們還在IIS內部託管了一個WCF服務,在重載的情況下,我們會無條件地卸載我們的應用程序域。在這些情況下,它會落到做清理的關鍵終結器上。不幸的是,在終結器中沒有線程關聯,第三方系統死鎖。 所以大致爲: public class FooEnvironment : CriticalFinalizerObject, IDispos