有沒有人有正確使用dispose和IDisposable的好文章或教程。我試圖向一些初級開發人員解釋這一點,並希望獲得一些額外的材料,示例等。Winforms處置IDisposable
2
A
回答
6
1
許多較舊的意見來源意味着IDisposable以某種方式鏈接到終結器。密切關注Herb Sutter對這個問題的評論。如果你實現了IDisposable,那麼不要試圖得出你需要編寫終結器的結論,以「確保Dispose最終運行,以防客戶端忘記調用它」。這通常不是這種情況。一個類可以實現IDisposable,以便它可以對它擁有的被管理對象進行各種調用,例如,依次處理這些對象。這從終結器完成是毫無意義的,因爲終結器不能可靠地訪問其他管理對象。此外,終結者所做的任何事情都必須能夠從任何線程中調用。終結者是一個非常模糊的先進事物,而IDisposable是一個應該無處不在的簡單模式。 SafeHandle changes the situation further的問世。
0
0
告訴他們總是使用using語句一次性的對象。
using (MyDisposable obj = new MyDisposable())
{
obj.some_stuff();
} //obj is disposed here
相關問題
- 1. Linq中處置的IDisposable的
- 2. 如何使用IDisposable處置對象
- 3. 泛型函數來處理處置IDisposable的對象
- 4. 處置一個對象是否處理所有的IDisposable屬性?
- 5. WinForms和處置自定義控件
- 6. Winforms - 服務處置對象錯誤
- 7. C#在超出範圍時自動「處置」IDisposable對象嗎?
- 8. 使用Unity時,您如何自動處置IDisposable?
- 9. ThreadStatic IDisposable可以自動處理嗎?
- 10. IDisposable接口和異步處理(SmtpClient.SendAsync)
- 11. C#中的IDisposable實現 - 是否可選處理注入的IDisposable OK?
- 12. 處理中的WinForms
- 13. IDisposable Winform
- 14. Impementing IDisposable
- 15. IDisposable鏈
- 16. 當了IDisposable被傳遞到父IDisposable的
- 17. 調用Dispose設置IDisposable屬性時?
- 18. 如果IDisposable處理不正確,Resharper可以設置爲警告嗎?
- 19. WinForms線程調用處理
- 20. 的WinForms異常處理
- 21. WinForms全局異常處理?
- 22. 的Winforms C#(登錄處理)
- 23. 實現了IDisposable
- 24. 嘲笑IDisposable類
- 25. IDisposable和COM
- 26. IDisposable和ReaderWriterLockSlim
- 27. IDisposable和WCF
- 28. IDisposable的問題
- 29. 爲IDisposable的
- 30. EntLib IDisposable轉換
「如果您創建的類不使用非託管資源,那麼您不應該實現IDisposable。」 人們從哪裏得到這個想法? – 2008-10-22 22:33:56