程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> C#實現清理系統內存

C#實現清理系統內存

編輯:C#基礎知識

金山內存整理工具、360內存清理工具非常好用,可以將系統內存最小化,提升系統運行速度。其實這些事情C#也可以做到,原理就是對系統進程中的進程內存進行逐個優化。

網上大多推薦使用系統的SetProcessWorkingSetSize的函數API,但是經過實踐發現並不好用。建議使用EmptyWorkingSet函數。以下是代碼:

     [DllImport("psapi.dll")]
        static extern int EmptyWorkingSet(IntPtr hwProc);

        /// <summary>
        /// 釋放內存
        /// </summary>
        public static void ClearMemory()
        {
            GC.Collect();
            GC.WaitForPendingFinalizers();
            Process[] processes = Process.GetProcesses();
            foreach (Process process in processes)
            {
                //對於系統進程會拒絕訪問,導致出錯,此處對異常不進行處理。try
                {
                    EmptyWorkingSet(process.Handle);
                }
                catch
                {
                }
            }
        }
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved