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