嗨,我在这里有代码,我不明白为什么我会遇到断点(请参阅评论)。
这是我不知道或我不正确理解的 Microsoft 错误吗?
代码在 Debug 中进行了测试,但我认为它不应该改变任何东西。
注意:您可以直接在控制台应用程序中测试代码。
仅供参考...在 supercat 回答之后,我使用建议的解决方案修复了我的代码,并且效果很好:-) !!! 不好的是静态字典的使用和性能随之而来但它的工作原理。...几分钟后,我意识到 SuperCat 给了我所有的提示,让我做得更好,解决静态字典,我做到了。代码示例是:
样品...
using System;
using System.Collections.Generic;
using System.Diagnostics;
namespace WeakrefBug
{
// **********************************************************************
class B : IDisposable
{
public static List<B> AllBs = new List<B>();
public B()
{
AllBs.Add(this);
}
private bool disposed = false;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (!disposed)
{
AllBs.Remove(this);
disposed = true;
}
}
~B() …Run Code Online (Sandbox Code Playgroud)