詳解C#中的System.Timers.Timer定時器的使用和定時自動清理內(nèi)存應(yīng)用
更新時間:2017年06月30日 16:02:36 作者:Jugg書生
這篇文章主要介紹了詳解C#中的System.Timers.Timer定時器的使用和定時自動清理內(nèi)存應(yīng)用,需要的朋友可以參考下
項目比較大有時候會比較卡,雖然有GC自動清理機制,但是還是有不盡人意的地方。所以嘗試在項目啟動文件中,手動寫了一個定時器,定時清理內(nèi)存,加快項目運行速度。
public class Program { [DllImport("psapi.dll")] static extern int EmptyWorkingSet(IntPtr hwProc); //清理內(nèi)存相關(guān) static void Main() { //啟動定時清理內(nèi)存 SetTimer(); } /// <summary> /// 定時清理內(nèi)存 /// </summary> private static void SetTimer() { System.Timers.Timer aTimer = new System.Timers.Timer(); //初始化定時器 aTimer.Interval = 60000;//配置時間1分鐘 aTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent); aTimer.AutoReset = true;//每到指定時間Elapsed事件是到時間就觸發(fā) aTimer.Enabled = true; //指示 Timer 是否應(yīng)引發(fā) Elapsed 事件。 } //定時器觸發(fā)的處理事件 private static void OnTimedEvent(Object source, ElapsedEventArgs e) { //清理內(nèi)存 GC.Collect(); GC.WaitForPendingFinalizers(); Process[] processes = Process.GetProcesses(); foreach (Process process in processes) { //以下系統(tǒng)進程沒有權(quán)限,所以跳過,防止出錯影響效率。 if ((process.ProcessName == "System") && (process.ProcessName == "Idle")) continue; try { EmptyWorkingSet(process.Handle); } catch { } } } }
以上所述是小編給大家介紹的C#中的System.Timers.Timer定時器的使用和定時自動清理內(nèi)存應(yīng)用,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
c#操作sqlserver數(shù)據(jù)庫的簡單示例
這篇文章主要介紹了c#操作sqlserver數(shù)據(jù)庫的簡單示例,需要的朋友可以參考下2014-04-04C#中JSON轉(zhuǎn)為實體類和List以及結(jié)合使用
開發(fā)中經(jīng)常遇到將JSON字符串轉(zhuǎn)換為List的需求,下面這篇文章主要給大家介紹了關(guān)于C#中JSON轉(zhuǎn)為實體類和List以及結(jié)合使用的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-01-01C#中構(gòu)造函數(shù)和析構(gòu)函數(shù)用法實例詳解
這篇文章主要介紹了C#中構(gòu)造函數(shù)和析構(gòu)函數(shù)用法,結(jié)合實例形式詳細分析了C#中構(gòu)造函數(shù)與析構(gòu)函數(shù)的原理、定義、使用方法與相關(guān)注意事項,需要的朋友可以參考下2016-06-06C#調(diào)用百度API實現(xiàn)活體檢測的方法
這篇文章主要給大家介紹了關(guān)于C#調(diào)用百度API實現(xiàn)活體檢測的方法,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09