0

私のc#アプリケーションは.netWebBrowserを使用しています。毎回子コントロールを閉じる必要がありますが、WebBrowserが破棄されず、呼び出しごとにRAM消費量が大幅に増加し(新しいコントロール宣言ごとに約10 mb)、OutOfMemoryExceptionでアプリケーションがクラッシュすることがあります。フォーラムを検索しましたが、クリーンな解決策を見つけることができませんでした。SetProcessWorkingSetSize(pHandle、-1、-1);を試しました。ただし、RAMの使用量は削減され、問題を克服するためのクリーンな方法ではありませんが、仮想メモリは削減されません。

この問題は何年も前から存在しているようです。詳細については、このスレッドを参照してください。.NETWebブラウザコントロールのメモリリークを回避するにはどうすればよいですか。

助言がありますか ?ほとんどすべてを試しましたが、まだ成功していません。

ありがとう、

Abhinav

4

1 に答える 1

1

あなたの状況が私の状況と似ているかどうかはわかりませんが、私はその奇妙な問題のために 3 日間を無駄にしました. 私のアプリケーションは Web ページで検索を実行していましたが、私のコードはそのようなものでした。

1.Webページ
を(1000回)開く
{
2.入力して検索ボタンをクリック。
3.結果を確認します。
}

ご覧のとおり、私のプログラムは Web ページを開き、検索を繰り返します。ここでは、ページを開く (navigaiton) のは 1 回だけです。私のプログラムのメモリ消費量は、1 GB を超えても継続的に増加していました! 次に、ナビゲーションをループ内に配置してみました。

for(1000回)
{
1.Webページ
を開く 2.入力して検索ボタンをクリック。
3.結果を確認します。
}

正確な理由はわかりませんが、同じページを長時間再利用することが問題の原因でした。お役に立てば幸いです。

于 2012-10-13T11:50:03.000 に答える