ベスト プラクティスは、IDisposable を実装するオブジェクト、特にファイル ハンドル、ソケット、GDI ハンドルなどの有限リソースをラップするオブジェクトで Dispose を呼び出すことです。
しかし、Font を持つオブジェクトがあり、オブジェクトのいくつかのレイヤーを介して IDisposable を配管し、多くの使用法を確認して、Font が常に破棄されるようにする必要があります。そして、それが複雑さの価値があるかどうか疑問に思っています。
GDI リソースはシステム グローバルであるため、Font が HFONT をラップした場合は問題ありません。ただし、Font は GDI ハンドルをラップしません。それは完全に独立したシステムであるGDI +であり、私が理解している限り、GDIのようにシステムグローバルではなく、プロセスローカルです。また、Image とは異なり、Font はファイルシステム リソースを保持することはありません (とにかく、私は知っています)。
だから私の質問は次のとおりです。フォントにガベージコレクションをさせることの実際のコストはいくらですか?
ファイナライザーに小さなヒットを与えることはわかっていますが、「リークされた」フォントの数が少ない場合 (半ダースなど)、そのヒットは正直なところ目立ちません。ファイナライザーを除けば、これは中規模の配列を割り当てて GC にクリーンアップさせるのと大差ないように見えます。これは単なるメモリです。
Font を GCed にする際に、私が気付いていないコストはありますか?