传统应用程序中存在内存泄漏,所以我不太了解代码。我使用MemProfiler进行了分析,发现有越来越多的对象被TimerCall
对象引用。这些TimerCallback
s被_TimerCallback
对象引用,这些是根的孩子。该图看起来像Root
→_TimerCallback
→TimerCallback
→MyObject
。内存泄漏:根引用的TimerCallbacks对象
由于MyObject
需要在其构造TimerCallback
有几个电话,如:
new MyObject(int timeout, new TimerCallback(SomeCallbackMethod));
说实话它看起来相当尴尬的我不喜欢这样,但我写的是一个旧的应用程序,它是写在“C风格”C#,有很多空分配和Dispose()
调用...
那么我怎样才能从根删除这些对TimerCallback
的引用?
你有没有找到这个解决方案?我在我的应用程序中有定时器代码,但是我确信我总是在处理完定时器后处理它们,并且遇到同样的问题。 – Jimbidf