为什么Visual Studio无法在这个简单的C#属性上设置条件断点?

Tul*_*x86 17 c# debugging visual-studio-2010 visual-studio-debugging

在我的C#对象中,我使用value == "Status"此属性的setter中的条件设置了条件断点.通常它用PostSharp方面装饰,但我在这种情况下评论说它仍然有问题.

public virtual string Name
{
    get
    {
        return _name;
    }
    set
    {
        _name = value; // breakpoint here
    }
}
Run Code Online (Sandbox Code Playgroud)

第一次执行到达断点时,VS显示错误:

Visual Studio MessageBox

编辑 - 对于可搜索性,消息是这样的:

无法设置以下断点:

在(文件).cs,第137行第17个字符('(class).Name',第12行),当'value =="Status"'为真时

功能评估需要运行所有线程.

这是Threads窗口的样子:

调试器线程窗口

以前有人见过这个,或者有什么想法可能会导致调试器对这个看似简单的情况感到不满?它可能与睡眠线程有关吗?

Tul*_*x86 1

我最终设计了一个解决方法:

public virtual string Name
{
    get
    {
        return _name;
    }
    set
    {
        if (value == "Status")
            DoSomeNoOp(); // Breakpoint here, or Debug.Fail() inside your no-op

        _name = value;
    }
}
Run Code Online (Sandbox Code Playgroud)