Debugging &引用;由于上一次功能评估超时,功能评估被禁用。";-在vs2012

Debugging &引用;由于上一次功能评估超时,功能评估被禁用。";-在vs2012,debugging,visual-studio-2012,Debugging,Visual Studio 2012,最近我开始研究VS2012 当我调试代码(这是SharePoint 2013应用程序)并尝试获取变量值时,我会一次又一次地收到以下消息: Function evaluation disabled because a previous function evaluation timed out. You must continue execution to reenable function evaluation. 我以前在VisualStudio2010(用于SharePoint 2010应用

最近我开始研究VS2012

当我调试代码(这是SharePoint 2013应用程序)并尝试获取变量值时,我会一次又一次地收到以下消息:

Function evaluation disabled because a previous function evaluation timed out.
You must continue execution to reenable function evaluation.
我以前在VisualStudio2010(用于SharePoint 2010应用程序)中工作过,在尝试获取Quick Watch中变量的值时,几乎从未收到过此消息

我在谷歌上搜索了错误消息,发现问题出现在尝试获取函数值时,这些函数的操作需要很长时间, 但我不想得到函数的值,只想得到变量,但我得到了这个错误

我并不总是在相同的变量上得到错误,而是随机的——每次都是不同的变量

在VS2012中,是否有其他人存在此问题

我怎样才能摆脱它呢

为什么会这样

当您试图观察一些必须是线程安全的变量时,这种错误似乎很容易发生,但有时这种框架实现并不完美

为了避免这个问题:当单步执行变量绑定到窗口或其他控件的代码时,不会显示局部变量或“自动”变量。只有当您确信您的变量都可以安全查看时,才能查看这些内容。请注意,错误不一定出现在不安全变量上。在危险代码下操作时,使用安全(即非控制)变量的“立即”窗口

数据访问器应始终是线程安全的。但有时在两个实现之间(比如在Sharepoint 2010和Sharepoint 2012之间或两个版本的.NET framework之间),此规则有时不正确。。。在VS2003和2005之间有一些例子

如何增加超时

您可以通过使用
RegEdit
更改注册表项
HKEY\u CURRENT\u USER\Software\Microsoft\VisualStudio\11.0\Debugger
的值来增加超时时间


更改注册表项后不要忘记重新启动Visual Studio。

您应该发布一些相关的代码。@AndyG-但它并不总是发生在特定的代码部分,这正是问题所在。可能是@HansPassant的重复-我看不出您在那里对我的问题有答案-如何使vs2012的调试器像VS2010一样工作,如何使其不会使变量如此快地不可用?可能重复,因为答案表明,您可以在更改注册表项之前增加注册表项下的超时值
HKEY\u CURRENT\u USER\Software\Microsoft\VisualStudio\11.0\Debugger
Exit VS 2012。否则VS将在退出时恢复值。我还想知道您正在谈论的键的名称。在您指出的注册表分支中有一组键。我想它是
NormalEvalTimeout
,但是quickwatch和立即窗口也有一个超时。