當我嘗試添加/插入/刪除到集合(或任何更改集合的操作)時,我會得到以下異常。 集合被初始化,並且插入的項目不是null,並且與集合T的類型相同。集合上的奇怪異常
任何人都可以爲我提供線索,爲什麼會發生這種情況?
運行時遇到致命錯誤。該錯誤的地址是0x60f41744
,線程0x231c
。錯誤代碼是0x80131623
。
此錯誤可能是CLR或用戶代碼的不安全或不可驗證部分中的錯誤。此錯誤的常見來源包括COM-interop或PInvoke的用戶編組錯誤,這可能會破壞堆棧。
更新: 該集合是一個ObservableCollection
,我設法瞭解它發生在已更改集合的通知部分。
這發生在具有TaskScheduler.FromCurrentSynchronizationContext()
選項的任務內的UI線程上。
奇怪的是,如果我刪除此(TaskScheduler.FromCurrentSynchronizationContext()
)選項添加/插入/刪除操作,似乎都工作良好。
嗯,我在事件查看器中發現了一個調用FailFast:Framework版本:v4.0.30319 描述:應用程序通過System.Environment.FailFast(字符串消息)請求進程終止。在System.Windows.WeakEventManager.DeliverEventToList(System.Object,System.EventArgs,ListenerList)上的System.Environment.FailFast(System.String) System.Windows.WeakEventManager.DeliverEvent(System.Object,System .EventArgs) 很明顯是來自ObservableCollection的通知,但爲什麼?爲什麼只在UI線程上發生? –
對不起 - 但評論中的無回車鍵很難:) –
回答更新。 –