項(xiàng)目比較大有時(shí)候會比較卡,雖然有GC自動清理機(jī)制,但是還是有不盡人意的地方。所以嘗試在項(xiàng)目啟動文件中,手動寫了一個定時(shí)器,定時(shí)清理內(nèi)存,加快項(xiàng)目運(yùn)行速度。
在通化等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營銷型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè)公司,通化網(wǎng)站建設(shè)費(fèi)用合理。
public class Program { [DllImport("psapi.dll")] static extern int EmptyWorkingSet(IntPtr hwProc); //清理內(nèi)存相關(guān) static void Main() { //啟動定時(shí)清理內(nèi)存 SetTimer(); } ////// 定時(shí)清理內(nèi)存 /// private static void SetTimer() { System.Timers.Timer aTimer = new System.Timers.Timer(); //初始化定時(shí)器 aTimer.Interval = 60000;//配置時(shí)間1分鐘 aTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent); aTimer.AutoReset = true;//每到指定時(shí)間Elapsed事件是到時(shí)間就觸發(fā) aTimer.Enabled = true; //指示 Timer 是否應(yīng)引發(fā) Elapsed 事件。 } //定時(shí)器觸發(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)進(jìn)程沒有權(quán)限,所以跳過,防止出錯影響效率。 if ((process.ProcessName == "System") && (process.ProcessName == "Idle")) continue; try { EmptyWorkingSet(process.Handle); } catch { } } } }
以上所述是小編給大家介紹的C#中的System.Timers.Timer定時(shí)器的使用和定時(shí)自動清理內(nèi)存應(yīng)用,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!