Quantcast
Channel: isaced - C#
Viewing all articles
Browse latest Browse all 10

[C#] 内存占用释放

$
0
0


C# 出来的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)
            {
                SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
            }
        }
#endregion

Viewing all articles
Browse latest Browse all 10

Trending Articles