我知道,最好的做法是調用Dispose實現IDisposable的任何對象,尤其是對象用於包裝有限資源,如文件句柄,插座,GDI處理等處置字體的重要性如何?
但我遇到的情況在那裏我有一個具有Font的對象,並且我將不得不通過幾層對象來檢測IDisposable,並檢查很多用法,以確保始終獲取Font。我想知道這是否值得複雜。
如果Font包裝了HFONT,那將是一回事,因爲GDI資源是系統全局的。但是Font不包裝GDI句柄;它是GDI +,它是一個完全獨立的系統,就我所知,它是過程本地的,而不是像GDI那樣的系統全局。和Image不同的是,Font永遠不會佔據文件系統資源(無論如何我都知道)。
所以我的問題是:什麼讓字體得到垃圾收集的真正成本?
我知道我會爲終結者帶來一些小小的驚喜,但是如果「泄漏」的字體數量很少(比如說半打),那麼這個命中率並不會很明顯。除了終結器之外,這與分配一箇中等大小的陣列並讓GC清理它並沒有什麼不同 - 它只是內存。
讓我不知道讓字體得到GCed的成本?
「通常,非託管手柄比內存更受限制」 - 當然。但是,對於GDI +字體處理來說,這是否正確?這是我的問題的一部分。 – 2009-04-15 16:11:30