我的应用程序可以正常运行大约 5 分钟,然后它会抛出一些随机事件System.ArgumentException
,如下面的屏幕截图所示:
这里的大问题是两个参数实际上似乎都是正确的,并且在大约 5 分钟内运行良好。我的应用程序只是在单独的线程中不断拍摄屏幕快照。
以下代码截取屏幕快照,并System.ArgumentException
在此片段中引起 a (与屏幕截图相同)。
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 次后不再发生异常)。这当然不是一个很好的解决方案,有时它只是永远挂在那个异常中,在我重新启动应用程序之前根本不截屏。
我不知道为什么这些论点无效以及可能导致这种情况的原因。有任何想法吗?