У меня есть приложение C#, в котором я получаю эту ошибку:
"Функциональная оценка, отключенная, потому что предыдущая функциональная приведенная к таймауту оценка. Необходимо продолжить выполнение для перевключения функциональной оценки".
Я видел много сообщений, связанных с этой ошибкой на stackoverflow и на MSDN также, но не нашел решения. Большинство людей говорит, что эта ошибка прибывает в многопоточное приложение и может быть разрешена путем удаления всех точек останова. В моем случае мое приложение является отдельным, распараллелил, и я удалил все точки останова также, но тем не менее я получаю эту ошибку, когда я отлаживаю приложение. Когда я запускаю приложение. без отладки просто зависает мое приложение, и я должен остановить его через Visual Studio. Я пытался найти код, где его получение зависает, и я нашел строку, где это добирается, зависают. Вот фрагмент кода:
MatchCollection matchesFound = Regex.Matches(content,
keywordPattern,
RegexOptions.Multiline);
int matchCount = matchesFound.Count;
Когда выполнение происходит во вторую строку, т.е. когда код пытается получить значение свойства Count, мое приложение добирается, зависают. Мое регулярное выражение прекрасно, поскольку я протестировал его в Экспрессе, и я уверен, что приложение не становится повешенным при выполнении Соответствий () метод. Если я приезжаю в ту строку путем отладки, я получаю вышеупомянутую ошибку. Кто-либо знает, почему эта ошибка прибывает и как разрешить его?
Я использую Visual Studio 2005.
Причины зависания и этого сообщения об ошибке, вероятно, одинаковы : есть что-то, что требует много времени для вычисления. И когда вы делаете это в коде, и в отладчике. Отладчик не обладает волшебной силой, чтобы вычислить что-то быстрее, чем ваше приложение.
Вы можете попробовать использовать Debug.WriteLine
для вывода фактического содержимого
и keywordPattern
. Я думаю, вполне возможно, что оба они достаточно велики, чтобы продолжить работу.