上的集合修改而引起的這個真的很奇怪的錯誤,我從來沒有找到過(它很少發生)。基本上,我有一個C#應用程序,它在退出時隨機拋出一個未知的異常。我已經成功地抓住它在調試這個時候,而且事實證明,在調用Application.Exit()
是扔一個System.InvalidOperationException
以下消息:System.InvalidOperationException因調用Application.Exit()
「System.InvalidOperationException」類型的第一次機會異常出現在mscorlib中。 dll
其他信息:收集已修改;枚舉操作可能不會執行。
我不知道什麼這收集已涉嫌修改爲,或者是誰是修改了它。
堆棧跟蹤是不是非常有幫助!
mscorlib.dll中System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext() + 0x13f字節System.Windows.Forms.dll的System.Windows! Forms.Application.ExitInternal() + 0x112字節System.Windows.Forms.dll的!System.Windows.Forms.Application.Exit(System.ComponentModel.CancelEventArgs E)+ 0x65字節
任何想法如何我可以找出哪個ArrayList被修改了?我不認爲這是我明確做的任何事情,更可能是我正在做的一個操作,即在MS未期待的操作中間修改.NET框架的基礎狀態。
聽起來像Forms集合。 IIRC我以前見過這種情況,但不記得任何細節,對不起。 – leppie
你的應用程序在關機時做什麼?你能否提供代碼? – Fischermaen
沒什麼,真的......當我按下退出按鈕時,應用程序處於空閒狀態,沒有後臺線程或活動正在運行。 –