私のアプリケーションは約5分間正常に実行され、次にSystem.ArgumentException下のスクリーンショットに示すようにランダムにスローされます。
ここでの大きな問題は、両方の引数が実際に正しいように見え、約5分間完全に正常に動作することです。私のアプリケーションは、別のスレッドで画面のスナップショットを撮り続けます。
次のコードは画面のスナップショットを取得System.ArgumentExceptionし、このスニペットで発生します(スクリーンショットと同じ)。
Bitmap SNew = new Bitmap(NewRes.Width, NewRes.Height);
using (Graphics g = Graphics.FromImage(SNew))
g.CopyFromScreen(0, 0, 0, 0, new Size(NewRes.Width, NewRes.Height));
同じ例外がCopyFromScreenメソッドでも発生する可能性がありますが、同じように見えるNewRes値が同じです(私のスニペットの最初の行では発生していません)。
An unhandled exception of type 'System.ArgumentException' occurred in System.Drawing.dll


このコードをtry { } catch { }句に入れると、それも正常に機能します(例外がログに約10回ポップアップした後、例外は発生しなくなります)。もちろん、これは優れた解決策ではありません。アプリケーションを再起動するまでスクリーンショットをまったく撮らずに、その例外の範囲内で永遠にハングし続けることがあります。
なぜ引数が無効なのか、何が原因なのかわかりません。何か案は?