由于先前的function评估超时,因此function评估被禁用

我有一个C#应用程序,我收到此错误:

“function评估已禁用,因为之前的function评估已超时。您必须继续执行以重新启用function评估。”

我在stackoverflow和msdn上看到了许多与此错误相关的post,但没有找到解决方案。 大多数人都说这个错误来自multithreading应用程序,可以通过删除所有断点来解决。 在我的情况下,我的应用程序是单线程,我也删除了所有的断点,但我在调试应用程序时仍然收到此错误。 当我运行应用程序时。 没有调试,我的应用程序只是挂起,我必须通过visual studio停止它。 我试图找到它挂起的代码,然后找到它挂起的行。 这是代码片段:

MatchCollection matchesFound = Regex.Matches(content, keywordPattern, RegexOptions.Multiline); int matchCount = matchesFound.Count; 

当执行到达第二行时,即当代码试图获取Count属性的值时,我的应用程序将挂起。 我的正则表达式很好,因为我在Expresso中测试了它,我确信在执行Matches()方法时应用程序不会被挂起。 如果我通过调试来到那一行,我得到上面提到的错误。 有谁知道为什么会出现这个错误以及如何解决它?

我正在使用Visual Studio 2005。

挂起和此错误消息的原因可能是相同的 :有些东西需要花费大量时间来计算。 在代码和调试器中执行此操作时。 调试器没有神奇的力量来计算比你的应用更快的东西。

您可以尝试使用Debug.WriteLine输出实际contentkeywordPattern 。 我认为很容易这两个都足够大,需要花费很长时间才能继续。