2013-06-20 30 views
0

在我的應用程序(音樂播放器)中,我有一個名爲「遊戲模式」的功能,該功能會停止除播放音樂之外的所有後臺操作,我也想釋放一些內存。將ImageBrush中的空閒內存設置爲WPF中的空格

E.g. 我對基礎網格背景圖片在我的窗口,我設置這種方式

BaseGrid.Background = new ImageBrush("the image"); 

在遊戲模式方法,我做這樣的事情

BaseGrid.Background = null; 
GC.Collect(); 

,但它並沒有釋放任何內存時,稱爲第一次,當我第二次調用該方法,或者如果我將MessageBox.Show方法粘貼到nulling和GC.Collect之間,它也可以工作。

所以我的問題是。 將背景設置爲null異步操作需要一些時間並且GC.Collect在nulling之後調用這麼早的時候沒有看到未使用的對象,或者它可能是另一個問題?

+0

OK根據本[鏈接](HTTP:// stackoverflow.com/questions/888280/garbage-collecti在不減少當前內存使用量的情況下爲什麼)不可能在特定的時間點收集。感謝回覆:) – Aldos

回答

0

當過你打電話

GC.Collect(); 

你應該叫

GC.WaitForPendingFinalizer() 

+0

不,不工作 – Aldos

0

用途:

GC.WaitForPendingFinalizer(); 
+0

沒有變化,仍然沒有工作.. – Aldos