3

GDI ウィンドウ ハンドルを追跡して下げる最良の方法は何ですか。.

4

6 に答える 6

5

読む価値のある2つのリンク...

リソース リーク: 漏れのある GDI コードの検出、特定、および修復

GDI リソース リーク

于 2008-12-01T02:46:16.927 に答える
2

個人的にはIARSN TaskInfoを使用して、プログラムが使用するハンドルの数 (GDI を含む) を確認します。アクティブなハンドルの数を減らすことに関しては、アプリケーションでハンドルを使用しているものを調べます。

次のようなもの (ただし、これらに限定されません):

  • ペン
  • ビットマップ
  • コントロール (すべてがハンドルを使用しているとは思いません)

ハンドルが多すぎる、またはハンドル リークなどの特定の問題がありますか?

于 2008-11-25T17:19:04.450 に答える
1

少し前に、リソースリークを追跡するためのツールを作成しました。それはグーグルコードでホストされています。ネイティブライブラリですが、.NETコードのリークを追跡するためにも使用できると思います。

それが役に立てば幸い。

于 2008-12-17T22:00:59.427 に答える
1

GDI ハンドルを追跡するには、Nirsoft の GDIView をお勧めします。各タイプ (ペン、ブラシ、ビットマップ、フォント、DC など) からいくつの GDI ハンドルがプロセスを持っているかを表示できるフリーウェアです。

于 2011-12-08T10:07:30.430 に答える
1

ツールは必要ありません。win32 APIでGDIハンドルテーブルを読むだけ

于 2008-11-26T01:18:07.493 に答える
0

エンド ユーザーのマシンの現在の使用状況を確認する最も簡単な方法は、タスク マネージャーを使用して [GDI ハンドル] 列を確認することです。

GDI ハンドル リークがあると思われる場合は、リーク シナリオを 1 回実行し、ガベージ コレクションを強制し、タスク マネージャーを見て、gc でアクションを再度実行し、違いを確認する傾向があります。見つかった場合は、(SciTech の) .Net Profiler を使用しました。これにより、リークの原因となっているオブジェクトと、それが返されない理由を詳細に表示できます。

于 2008-11-25T17:19:36.290 に答える