我有一个C#应用程序,在其中我得到了这个错误:
“函数求值已禁用,因为上一个函数求值超时。您必须继续执行才能重新启用函数求值。”
我在stackoverflow和msdn上看到了许多与此错误相关的帖子,但没有找到解决方案。大多数人说这个错误出现在多线程应用程序中,可以通过删除所有断点来解决。在我的例子中,我的应用程序是单线程的,我也删除了所有的断点,但当我调试应用程序时,我仍然收到这个错误。当我运行应用程序时。如果不进行调试,我的应用程序就会挂起,我必须通过visual studio停止它。我试图找到代码挂起的地方,我找到了挂起的代码行。以下是代码片段:
MatchCollection matchesFound = Regex.Matches(content,
keywordPattern,
RegexOptions.Multiline);
int matchCount = matchesFound.Count;
当在第二行执行时,即当代码试图获取Count属性的值时,我的应用程序会挂起。我的正则表达式很好,因为我已经在Expresso中对其进行了测试,并且我确信应用程序在执行Matches()方法时不会挂起。如果我调试到这一行,我会得到上面提到的错误。有没有人知道这个错误发生的原因以及如何解决它?
我使用的是Visual Studio2005。
发布于 2010-04-27 20:47:10
挂起和这条错误消息的原因可能是相同的:有一些东西需要花费很多时间来计算。无论是在代码中还是在调试器中。调试器没有魔力来计算比你的应用程序更快的东西。
您可以尝试使用Debug.WriteLine
来输出实际的content
和keywordPattern
。我认为很可能两者都足够大,需要很长时间才能进行。
https://stackoverflow.com/questions/2721108
复制相似问题