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

时间:2010-04-27 12:28:23

标签: c# regex c#-2.0

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

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

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

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

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

我正在使用Visual Studio 2005。

1 个答案:

答案 0 :(得分:8)

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

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