Невозможно оценить выражение, потому что поток остановлен в точке, где сборка мусора невозможна.

Вот ошибка

Невозможно оценить выражение, потому что поток остановлен в точке, где сборка мусора невозможна, возможно, потому что код оптимизирован.

Я пишу простое консольное приложение и первая строка кода:

List<MyObjectModel> list = MyObjectModel.GetNonCompletedReturns();

, а код функции:

public static List<MyObjectModel> GetNonCompletedReturns()
{
    MyObject service = new MyObject();
    List<MyObject> entities = 
                      (from recs in service.Retrieve() where select recs).ToList();

    List<MyObjectModel> models = new List<MyObjectModel>();

    foreach (MyObject entity in entities)
    {
        models.Add(BindModel(entity));
    }

    return models;
}

, и если я попытаюсь пройти через код, как только я вернусь в главное приложение и наведу указатель мыши на над списком появляется сообщение об ошибке, которое я показал.

Кто-нибудь может помочь?

30
задан Gustavo Mori 14 June 2011 в 19:11
поделиться

6 ответов

У меня была та же проблема в Visual Studio 2017. Движение Отладить> Опции> Отладка> Общий и проверка "Подавляет оптимизацию JIT на загрузке модуля (Управляемый только)", зафиксировал мой выпуск

0
ответ дан 28 November 2019 в 00:07
поделиться

Если ваш проект скомпилирован в релизе (с включенной оптимизацией), вы можете увидеть это. Вы пробовали конфигурацию DEBUG?

22
ответ дан 28 November 2019 в 00:07
поделиться

Ни один из ответов не решил мою проблему, поэтому я выкладываю решение , которое мне помогло.

«Если в параметрах слишком много данных, то эта ошибка может возникнуть, простое решение - создать объект, а не структуру, потому что это объект данных.

Поместите этот объект в свои параметры вместо все различные переменные, как правило, проблема больше не будет иметь место. "

2
ответ дан 28 November 2019 в 00:07
поделиться

Вот небольшой трюк на тот случай, если вы хотите проверить некоторые объекты и не можете изменить параметры:

Я создал вызов новой временной функции внутри функции, откуда я не смог наблюдать за моим объектом. Затем внутри этой новой функции я смог наблюдать за моим объектом. После завершения работы просто удалите функцию.

1
ответ дан 28 November 2019 в 00:07
поделиться

Я тоже это получил, когда получил NullReferenceException от стороннего контроля.

В этом одном случае я обнаружил, что, если я установлю точку останова до , я попаду в исключение, то смогу пройти один шаг по остальной части кода, не видя проблемы.

Понятия не имею почему, но это сработало для меня - в данном случае, по крайней мере.

0
ответ дан 28 November 2019 в 00:07
поделиться

Если ваша конфигурация решения Visual Studio - Release, переключитесь на Debug.

2
ответ дан 28 November 2019 в 00:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: