2009-10-12 64 views
1

所以我是新來的WPF和我有問題,我的窗戶沒有釋放他們的記憶後,我用.Show()打開它們。我基本上想打開一個無模式的對話框。我看到的情況是,當我打開新窗口時,內存不斷增加,然後當我通過右上角的退出按鈕關閉內存時,內存永遠不會下降。任何關於釋放內存的想法?WPF - window.show()不會釋放它的內存?

+0

打開時窗戶在做什麼? –

回答

1

如果您使用Windows任務管理器進行檢查,雖然內存尚未被.NET釋放,但您會發現它已被應用程序釋放並可以重新使用。

reference/link

爲了確保您的應用程序釋放內存,當應用程序關閉時,適當地使用Application.ShutdownMode。

reference/link

+0

你說得對。我只需要調用SetProcessWorkingSetSize()來通知操作系統刷新內存使用情況。非常感謝。 – Travyguy9

0

即時通訊目前使用WPF我的項目,我注意到這附近的開始,並在一段時間發展,這個問題解決了自身後,也看到了。這主要發生在應用程序內部打開新窗體時,但應用程序完全關閉時應釋放內存。

如果任務管理器是說,應用程序仍處於打開狀態時,應當將其關閉,然後的形式之一是不正確發佈...

編輯補充:當你調用一個形式打開,使用.Close(),即使自我解釋,我從來沒有使用.Close(),它導致了我的這個問題,但是一旦我添加了命令就被修復了。

+0

是的,我基本上只是製作新窗口,然後繼續前進。我不堅持窗口對象,所以我不能調用.close()。 – Travyguy9

+0

你打算如何製作新窗口?只是messagebox的或你在做Window1 win = new Window1();? – Michael