ObjectDisposedException is:
The exception that is thrown when an operation is performed on a disposed object. (source)
In other words, if an instance of a class that implements the IDisposable interface is disposed -- either explicitly by a call to Dispose()
or implicitly, such as if it appears in a using
statement or otherwise -- any attempts to call methods on the object will raise the exception above.
As with most debugging problems, it's very difficult to say what is causing yours without actually looking at the code and running it in a debugger. You say that the program crashes with ObjectDisposedException after running for a few days. In my experience, this is usually means one of two things:
- There is some very unusual code path which, when taken, always causes a crash
- A race condition exists between threads in your program. Thus, the crash appears unpredictably and may be difficult to reproduce
My advice to you is to start the program in the debugger, and leave it running until the exception is thrown. Then you can come back here and provide us with the relevant code, stack trace, debug output, etc.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…