2013-06-20 126 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