Подтвердить что ты не робот

Отклонение функции отключено, так как предыдущая оценка функции была отключена

У меня есть приложение С#, в котором я получаю эту ошибку:

"Оценка функции отключена, потому что предыдущая оценка функции завершена. Вы должны продолжить выполнение для повторной оценки функции.

Я видел много сообщений, связанных с этой ошибкой в ​​stackoverflow и msdn, но не нашел решения. Большинство людей говорят, что эта ошибка возникает в многопоточном приложении и может быть устранена путем удаления всех точек останова. В моем случае мое приложение однопоточное, и я удалил все точки останова, но все же я получаю эту ошибку при отладке приложения. Когда я запускаю приложение. без отладки, мое приложение просто зависает, и я должен остановить его через визуальную студию. Я попытался найти код, где его повесить, и я нашел линию, где он повесился. Вот фрагмент кода:

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

Когда выполнение выполняется во второй строке, то есть когда код пытается получить значение свойства Count, мое приложение зависает. Мое регулярное выражение прекрасно, поскольку я тестировал его в Expresso, и я уверен, что приложение не получает повешение при выполнении метода Matches(). Если я прихожу к этой линии путем отладки, я получаю вышеупомянутую ошибку. Кто-нибудь знает, почему возникает эта ошибка и как ее решить?

Я использую Visual Studio 2005.

4b9b3361

Ответ 1

Причины зависания и этого сообщения об ошибке, вероятно, те же: для вычисления требуется много времени. И когда вы делаете это в коде и в отладчике. Отладчик не имеет волшебной силы для вычисления чего-то быстрее, чем ваше приложение.

Вы можете использовать Debug.WriteLine для вывода фактических content и keywordPattern. Я думаю, легко может быть, что оба они достаточно велики, чтобы отвлечься.