В настоящее время я ищу файлы памяти в нашем приложении, и когда дело доходит до режимов просмотра, которые выполняют любые запросы linq, я нахожу объект в памяти с этим пространством имен. Я использую dotMemory для проверки и перечисляет объект с завершением + <> c. Я не нашел никакого объяснения, что это за объект, и если это реальная проблема, что это находится в памяти, но я обнаружил, что он связан с запросом linq. Код, который перепрограммирует это и как вы можете увидеть результат запроса Linq, никогда не используется.Проблема с памятью в приложении WPF при использовании linq
public class myViewModel : PropertyChangedBase
{
public myViewModel()
{
var memissue = _dummyList.ToList().Any(c => c == false);
}
public string SomeBoundProperty
{
get { return _someBoundProperty; }
set
{
if (value == _someBoundProperty) return;
_someBoundProperty = value;
NotifyOfPropertyChange();
}
}
}
Я надеюсь, что кто-то может объяснить, какого рода объекта а + <> с и, возможно, поэтому он не освобожден из памяти или это просто так, что Linq работает?
ViewModel + <> c - это вложенный класс, автоматически генерируемый компилятором для представления lamba, используемого где-то в классе ViewModel. Чтобы узнать, почему он не выпущен, дважды щелкните по строке, отображаемой на скриншоте, и посмотрите, что удерживает этот экземпляр в памяти. dotMemory расскажет вам все об этом. –