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