详解C#中的System.Timers.Timer定时器的使用和定时自动清理内存应用
项目比较大有时候会比较卡,虽然有GC自动清理机制,但是还是有不尽人意的地方。所以尝试在项目启动文件中,手动写了一个定时器,定时清理内存,加快项目运行速度。
publicclassProgram { [DllImport("psapi.dll")] staticexternintEmptyWorkingSet(IntPtrhwProc);//清理内存相关 staticvoidMain() { //启动定时清理内存 SetTimer(); } //////定时清理内存 /// privatestaticvoidSetTimer() { System.Timers.TimeraTimer=newSystem.Timers.Timer();//初始化定时器 aTimer.Interval=60000;//配置时间1分钟 aTimer.Elapsed+=newSystem.Timers.ElapsedEventHandler(OnTimedEvent); aTimer.AutoReset=true;//每到指定时间Elapsed事件是到时间就触发 aTimer.Enabled=true;//指示Timer是否应引发Elapsed事件。 } //定时器触发的处理事件 privatestaticvoidOnTimedEvent(Objectsource,ElapsedEventArgse) { //清理内存 GC.Collect(); GC.WaitForPendingFinalizers(); Process[]processes=Process.GetProcesses(); foreach(Processprocessinprocesses) { //以下系统进程没有权限,所以跳过,防止出错影响效率。 if((process.ProcessName=="System")&&(process.ProcessName=="Idle")) continue; try { EmptyWorkingSet(process.Handle); } catch { } } } }
以上所述是小编给大家介绍的C#中的System.Timers.Timer定时器的使用和定时自动清理内存应用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!