2009-10-12 2 views
1

Итак, я новичок в WPF, и у меня возникают проблемы с моими окнами, которые не освобождают память после того, как я открою их с помощью .Show(). Я в основном хочу открыть немодальный диалог. То, что я вижу, происходит, когда память открывается, когда я открываю новое окно, а затем, когда я закрываю его с помощью кнопки выхода в правом верхнем углу, память никогда не опускается. Любые идеи по освобождению памяти?WPF - window.show() никогда не выпускает свою память?

+0

Что делает окно, когда оно открыто? –

ответ

1

Если вы проверяете использование диспетчера задач Windows, хотя память не была выпущена .net, вы обнаружите, что она была выпущена вашим приложением и может быть повторно использована.

reference/link

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

reference/link

+0

Вы правы. Мне просто нужно было вызвать SetProcessWorkingSetSize(), чтобы сообщить операционной системе об обновлении памяти. Большое спасибо. – Travyguy9

0

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

Если Task Manager говорит, что приложение все еще открыта, когда она должна быть закрыта, то одна из форм, не был должным образом освобожден ...

EDIT Добавление: При вызове формы, чтобы открыть, использовать .Close(), хотя я сам объясняю, я никогда не использовал .Close() и вызвал эту проблему для меня, но был исправлен после добавления команды.

+0

Да, я просто создаю новое окно, а затем двигаюсь дальше. Я не держусь за объект окна, поэтому я не могу позвонить .close(). – Travyguy9

+0

Как вы собираетесь создавать новое окно? Просто сообщение или вы делаете Window1 win = new Window1() ;? – Michael

Смежные вопросы