我的應用程序運行正常約5分鐘,然後它會拋出一些隨機System.ArgumentException
如下面的截圖所示: 這裏的大問題是,這兩種觀點其實看起來是正確的,並且它在大約5分鐘內完全正常工作。 我的應用程序只是在一個單獨的線程中持續拍攝屏幕快照。隨機System.ArgumentException雖然採取了一定時間後的截圖
以下代碼將拍攝屏幕快照,並在此片段中引起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次後,異常不再發生)。這當然不是一個好的解決方案,有時它會一直掛在這個異常之中,直到我重新啓動應用程序時纔會截圖。
我不知道爲什麼參數無效,什麼可能導致此。有任何想法嗎?
你調用Dispose在你的位圖(以及任何其他的引用),當你用它完成了嗎? – Wolfwyrd
這確實「固定」了問題的一部分,現在我通過CopyFromScreen在較長時間後出現內存不足。 – Tgys