私は、IDisposableを実装するオブジェクト、特にファイルハンドル、ソケット、GDIハンドルなどの有限リソースをラップするオブジェクトに対してDisposeを呼び出すことをお勧めします。Fontを処分することの重要性は、本当ですか?
私はケースに入っています私はフォントを持つオブジェクトを持っています。オブジェクトのいくつかのレイヤーを介してIDisposableを配置して、フォントを処分するように多くの用途を見直す必要があります。そして、私はそれが複雑さの価値があるかどうか疑問に思っています。
GDIリソースがシステムグローバルであるため、FontがHFONTをラップすると1つのことになります。しかしFontはGDIハンドルをラップしません。 GDI +は完全に別のシステムであり、わかっている限り、GDIのようにシステム全体ではなくプロセスローカルです。 Imageとは違って、Fontはファイルシステムのリソース(私が知っているとにかく)を保持することはありません。
私の質問は次のとおりです。Fontにガベージコレクションをさせる実際のコストはいくらですか?
ファイナライザのヒット数が少ないことはわかっていますが、「漏れた」フォントの数が少ない(半ダース)と、正直には目立つことはありません。ファイナライザとは別に、これは中規模の配列を割り当てることとGCのクリーンアップをさせることと大きく異なるようには見えません。
フォントをGCedにするのに気づいていないのですか?
"管理されていないハンドルはメモリよりも制限されることが多い" - 確かに。しかし、それは具体的にGDI +フォントハンドルに当てはまりますか?それは私の質問の一部です。 –