簡體   English   中英

System.ObjectDisposedException

[英]System.ObjectDisposedException

我正在運行一些Windows應用程序,它工作了幾天然后停止工作沒有錯誤。 現在我在事件查看器中發現了這個錯誤。 也許有人知道什么會導致這個錯誤?

事件類型:錯誤

事件源:.NET Runtime 2.0錯誤報告事件

類別:無

事件ID:5000

日期:2010年10月30日

時間:21:58:57

用戶:N / A.

電腦:SERVER-PROD

描述:EventType clr20r3,P1 program.exe,P2 1.0.0.0,P3 4cca7ed1,P4 mscorlib,P5 2.0.0.0,P6 4be90358,P7 1164,P8 0,P9 system.objectdisposedexception,P10 NIL。

ObjectDisposedException是:

在已處置對象上執行操作時引發的異常。 來源

換句話說,如果實現了實現IDisposable接口的類的實例 - 通過調用Dispose()顯式地或者隱式地(例如,如果它出現在using語句中或其他方式) - 任何嘗試調用方法的方法該對象將引發上述異常。

與大多數調試問題一樣,如果不實際查看代碼並在調試器中運行它,很難說是什么導致了您的問題。 你說在運行幾天后程序崩潰了ObjectDisposedException。 根據我的經驗,這通常意味着兩件事之一:

  1. 有一些非常不尋常的代碼路徑,一旦采取,總會導致崩潰
  2. 程序中的線程之間存在競爭條件 因此,崩潰看起來不可預測並且可能難以再現

我的建議是在調試器中啟動程序,並保持運行直到拋出異常。 然后你可以回到這里並向我們提供相關代碼,堆棧跟蹤,調試輸出等。

有東西正在訪問已被處置的對象。 如果您在表單上有多線程,通常會發生這種情況。 啟動backgroundworker / thread / timer,然后處理表單。 當backgroundworker / thread / timer嘗試以某種方式更新表單時,您會收到此異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM