关于Winform应用程序占用内存较大解决方案

关于Winform应用程序占用内存较大
程序占用内存很大,于是在网上查了一个方法、
#region 内存回收
[DllImport("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize")]
public static extern int SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);
/// <summary>
/// 释放内存
/// </summary>
public static void ClearMemory()
{
GC.Collect();
GC.WaitForPendingFinalizers();
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
App.SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
}
}
#endregion

调用这个,效果确实显著..
但是问题是,我载入了一个几十MB的声音文件,全读到一个数组里了。用这函数一清,整个程序内存占用只剩了2MB。囧,那我读的那些数据到哪去了?程序工作的还很正常...
------解决方案--------------------
本帖最后由 jiangsheng 于 2014-08-11 04:46:30 编辑
写到虚拟内存文件里去了。你的程序将会运行得更慢,因为要读磁盘而不是内存。如果你的程序在短时间内会被切换到前台,不要使用这个函数。通常这个函数是被用来预留内存而不是释放内存。