在我的应用程序(音乐播放器)中,我有一个名为“游戏模式”的功能,它会停止除播放音乐之外的所有后台操作,我也想释放一些内存。
例如,我在我的窗口中设置了基本网格上的背景图像
BaseGrid.Background = new ImageBrush("the image");
在 GameMode 方法中,我做了这样的事情
BaseGrid.Background = null;
GC.Collect();
但它在第一次调用时并没有释放任何内存,当我第二次调用该方法时,或者如果我在 nulling 和 GC.Collect 之间粘贴 MessageBox.Show 方法,它也可以工作。
所以我的问题是。将 Background 设置为 null 需要一些时间的异步操作,并且 GC.Collect 在清空后这么早就调用它时没有看到未使用的对象,或者它可能是什么其他问题?