定时清理内存

        /// <summary>
        /// 定时清理内存
         /// </summary>
        private void FulshMemory()
        {
            m_timer = new System.Threading.Timer(new TimerCallback(FulshMemory));
            m_timer.Change(1000, 10000);

        }
        private void FulshMemory(object o)
        {
            ReduceMemory();
        }

        [DllImport("kernel32.dll")]
        public static extern bool SetProcessWorkingSetSize(IntPtr proc, int min, int max);
        /// <summary>
        /// 清理内存
         /// </summary>
        public static void ReduceMemory()
        {
            long MaxSize = 50000000;
            System.Diagnostics.Process process = System.Diagnostics.Process.GetCurrentProcess();
            if (process.WorkingSet64 >= MaxSize && Environment.OSVersion.Platform == PlatformID.Win32NT)
            {
                GC.Collect();
                GC.WaitForPendingFinalizers();
                SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
            }
        }
原文地址:https://www.cnblogs.com/lusunqing/p/3150534.html