多数のXPSドキュメント(数千)で実行されるWinForms .Netアプリがあり、この実行中に、ハンドルの数(sysinternalsプロセスモニターとタスクマネージャーによる)がドキュメントごとに3〜10ずつ増加します。これらはMS.NetXPSフレームワークライブラリによって開かれ、閉じられないハンドルであると強く疑っていますが、追跡することはできません。
コードをステップスルーしても、同じ実行中のさまざまなポイントでハンドル数が増加します。たとえば、ループを1回通過すると、ハンドルカウントが1行で1ジャンプし、次回はジャンプしないか、2ジャンプする可能性があります。したがって、XPScomコンポーネントにハンドルリークがあると思われます。
メモリの使用は問題ありませんが、このようにハンドルを使い果たし続けると、アプリとおそらくデスクトップがクラッシュします。
これまで、sysinternalsプロセスエクスプローラーでハンドルを確認してみましたが、すべて詳細がないものとしてマークされています。また、sysinternalsのhandle.exeを使用しました。これは、スナップショットの前、最中、後の間に大きな違いはありません。
ハンドルがどこに向かっているのかを追跡する方法についての手がかりはありますか?テストするには、シングルスレッドのコンソールアプリに単純化する必要があると思います。
よろしく
ライアン