Я нашел эту последовательность вызовов полезной для принудительного запуска GC.
GC.GetTotalMemory(false);
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.GetTotalMemory(true);
try
{
Process curProc = Process.GetCurrentProcess();
curProc.MaxWorkingSet = curProc.MaxWorkingSet;
}
catch (Exception)
{
}
Однако, читая статью о Microsoft Connect, с которой вы связались, не работает GC не проблема этого пользователя.То, что делал этот пользователь, вставляет класс сущности в Session
, что является ужасным шагом и не позволит распоряжаться родительским классом по причинам, указанным в ответе (отслеживание изменений).
Сеансовый сохраненный объект должен быть отключенным классом, а не тем, что вы извлекаете из контекста.Пока вы этого не делаете, ваш объектный контекст будет удален, когда будет выпущена последняя ссылка на что-либо, что вы извлекли из него.