如何:刷新监视值
本主题适用于:
版本 |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
学习版 |
|||||
专业版、高级专业版和旗舰版 |
在调试器中计算表达式时,**“值”**列中可能会显示两个刷新图标之一。 一个刷新图标是包含两个按相反方向旋转的箭头的圆圈。 另一个刷新图标是包含两条类似于线条的波浪线的圆圈。
这些图标指示调试器中显示的值不是当前值。 该值可能是正确的,但它已过期。 为了强调此事实,该值也可能显示为灰色。 您可以单击图标强制计算,但应了解图标的原因以及可能出现的后果。
如果您指向图标,将显示一个工具提示,提供有关未计算表达式的原因的信息。
如果显示旋转箭头,则是由于下列原因之一而未计算表达式:
在计算表达式时发生错误。 例如,计算可能超时或者变量可能超出范围。
计算表达式需要计算属性或进行隐式函数调用。 属性以及隐式函数调用的计算可能会产生副作用,影响程序的状态。 由于这些副作用可能会使调试更加困难,因此调试器通常会关闭属性和隐式函数调用的自动计算。 有时,程序员可能会无意关闭自动计算。 有关副作用的更多信息,请参见副作用与表达式。
如果显示两条线,则是由于潜在的跨线程依赖项而未计算表达式。 跨线程依赖项意味着计算代码要求应用程序中的其他线程暂时运行。 处于中断模式时,应用程序中的所有线程通常停止。 允许其他线程暂时运行可能会对程序状态产生意外影响,并会导致调试器忽略断点等事件。
更新过期的值
执行以下步骤之一:
单击刷新图标。
选择值,然后按空格键。
调试器尝试重新计算该表达式。 如果因为属性和隐式副作用的自动计算已关闭而出现刷新图标,现在将会计算表达式。
关闭/打开自动属性计算
在**“工具”菜单上,单击“选项”**。
在**“选项”对话框中打开“调试”节点,然后单击“常规”**。
如果未显示**“调试”节点,请单击“显示所有设置”**。
选中或清除**“启用属性求值和其他隐式函数调用”复选框,然后单击“确定”**。