私の c# アプリは時々スローOOM
しても問題ありません (ユーザーは SQLlimit
コマンドを使用せずにデータを取得できます)、必要なのはそれを適切に処理することだけです。MessageBox
使用するためのアドバイスが含まれてlimit
いれば十分です。
問題は、OOM
毎回異なる行で発生することです (同じデータが取得される同じ行ですが、新しいデータ - 新しい例外ポイント): GDI+ が描画を行うための空きメモリがない場合、SQL コネクタが失敗する場合、ラッパークラス。さまざまな行、さまざまなクラス、さまざまなイベント ハンドラー、さらにはさまざまな匿名メソッドです。思ったほど悪くはありませんが、クラス階層はかなり正当なものですが、1 つ (または 2 つ) のtry/catch
ブロックのみを使用するほど単純にすることはできません (アプリはマルチスレッドです)。
AppDomain.CurrentDomain.UnhandledException
/Application.ThreadException
オプションはありません (処理するには遅すぎます)。
OOM
アプリによってスローされた最初のものOOM
を適切に処理する方法はありますOOM
かSortableBindingList
? GCに何らかの作業を強制しようとしているときに、メモリが他の場所に割り当てられないように処理するには?