GDI ウィンドウ ハンドルを追跡して下げる最良の方法は何ですか。.
6 に答える
個人的にはIARSN TaskInfoを使用して、プログラムが使用するハンドルの数 (GDI を含む) を確認します。アクティブなハンドルの数を減らすことに関しては、アプリケーションでハンドルを使用しているものを調べます。
次のようなもの (ただし、これらに限定されません):
- ペン
- ビットマップ
- コントロール (すべてがハンドルを使用しているとは思いません)
ハンドルが多すぎる、またはハンドル リークなどの特定の問題がありますか?
少し前に、リソースリークを追跡するためのツールを作成しました。それはグーグルコードでホストされています。ネイティブライブラリですが、.NETコードのリークを追跡するためにも使用できると思います。
それが役に立てば幸い。
GDI ハンドルを追跡するには、Nirsoft の GDIView をお勧めします。各タイプ (ペン、ブラシ、ビットマップ、フォント、DC など) からいくつの GDI ハンドルがプロセスを持っているかを表示できるフリーウェアです。
ツールは必要ありません。win32 APIでGDIハンドルテーブルを読むだけ
エンド ユーザーのマシンの現在の使用状況を確認する最も簡単な方法は、タスク マネージャーを使用して [GDI ハンドル] 列を確認することです。
GDI ハンドル リークがあると思われる場合は、リーク シナリオを 1 回実行し、ガベージ コレクションを強制し、タスク マネージャーを見て、gc でアクションを再度実行し、違いを確認する傾向があります。見つかった場合は、(SciTech の) .Net Profiler を使用しました。これにより、リークの原因となっているオブジェクトと、それが返されない理由を詳細に表示できます。