2011-04-20 16 views

回答

1

如果他們已經被處置掉了,你是否真的需要在終結器中處理它們?
或者相反:你是不是可以通過IDisposable模式來處理它們?

即使是你搶堅持爲您的應用程序的生命週期的資源,你仍然可以把它變成一個使用:

static void Main() 
{ 
    using(var yourResource = ...) 
    { 
    ... 
    yourMainForm.YourResource = yourResource; 
    Application.Run... 
    } 
} 

編輯:從一些有趣的答案除了[1] ,這聽起來像是整件事情都有問題。

如果終結器由於資源已經被處置而失敗,那麼在某個地方有問題。
如果此資源對於正確處置至關重要,那麼應該正確地執行此操作。
我不確定「在用戶界面中的某處引用」是否足夠好。 即使這是通過Form或其他方式完成,並不難。您可以重寫表單或組件或控制器的處置以確定性地執行它。

[1]如果有一天我咬我,可能會派上用場...

+0

如果用戶在資源仍在使用時關閉應用程序(即在UI中的某處引用),則會發生這種情況/ – 2011-04-20 08:00:08

+0

我在IDisposable中執行此操作,現在實際上正在通過Dispose方法調用它... Dispose和儘管如此,Finalize共享相同的代碼。感謝您的意見,但! – 2011-08-16 19:01:44

相關問題