> 文章列表 > c# 内存泄露紧急处理方法

c# 内存泄露紧急处理方法

c# 内存泄露紧急处理方法

[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)
    {
        SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
    }
}

调用以上API能让你的内存一下爆减,是不是很给力,一调用内存就降下来了。But,先别高兴太早,这其实是伪释放,只是暂时解决内存大量泄漏导致系统崩溃的应急处理方案。关键信息:他会把物理内存转到虚拟内存,涉及磁盘读写。好处坏处都贴出来了,是否需要使用请君自己斟酌