3

.netアドインでOutOfMemory例外が発生します。アドインは、多数の管理対象オブジェクトと非管理対象オブジェクトを使用しています。この例外をトラップする方法はありますか?

更新:定期的に解放せずに処理する必要のある大量のデータを処理する場合、どのアプリケーションでもOutofMemory例外が発生する可能性があると思います。メモリ内のいくつかの構造を分析するメソッドがあるとします。300の構造を指定し、それぞれをメモリにロードして分析し、処理を完了します。この操作では、メモリ使用量はXでした。処理する構造を3000にすると、メモリ内の3000を分析し、メモリ使用量は10Xになります。

更新しました

この問題はExcel2007でのみ発生し、Excel 2003では発生しません。そのため、MSDNの担当者に調査を依頼しました。

4

3 に答える 3

3

.Net では、要求されたメモリをアプリケーションに割り当てることができない場合、ランタイムによって OutOfMemoryException がスローされます。そのため、このような例外を処理するために実行できる実際の作業はほとんどありません。

それを捕まえる代わりに、そもそもそれが起こらないようにする必要があります。例外を無視しても問題は解決しません。

于 2009-04-22T08:02:11.010 に答える
0

それはあなたを取得するガベージコレクターである可能性があります。定期的に収集を強制してみてください。

それでも問題が解決しない場合は、次をお読みください:http ://www.simple-talk.com/dotnet/.net-framework/the-dangers-of-the-large-object-heap/

于 2009-04-22T13:56:13.153 に答える
0

OutOfMemoryException を取得した場合、プログラムは停止し、存在しなくなり、引き継がれ、もはや存在せず、作成者に会いに行きました。

しかし、真剣に、使い果たしたメモリの一部を回復できないため、何もできません。

于 2009-04-22T08:02:40.117 に答える