专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

详解C#中的System.Timers.Timer定时器的使用和定时自动清理内存应用

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:38:08       共计:3646 浏览

这篇文章主要介绍了详解C#中的System.Timers.Timer定时器的使用和定时自动清理内存应用,需要的朋友可以参考下

项目比较大有时候会比较卡,虽然有GC自动清理机制,但是还是有不尽人意的地方。所以尝试在项目启动文件中,手动写了一个定时器,定时清理内存,加快项目运行速度。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 public class Program   {     [DllImport("psapi.dll")]     static extern int EmptyWorkingSet(IntPtr hwProc); //清理内存相关    static void Main()     {       //启动定时清理内存       SetTimer();     }        /// <summary>     /// 定时清理内存     /// </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事件是到时间就触发       aTimer.Enabled = true; //指示 Timer 是否应引发 Elapsed 事件。     } //定时器触发的处理事件 private static void OnTimedEvent(Object source, ElapsedEventArgs e)     {       //清理内存       GC.Collect();       GC.WaitForPendingFinalizers();       Process[] processes = Process.GetProcesses();       foreach (Process process in processes)       {         //以下系统进程没有权限,所以跳过,防止出错影响效率。         if ((process.ProcessName == "System") && (process.ProcessName == "Idle"))           continue;         try         {           EmptyWorkingSet(process.Handle);         }         catch         {         }       }     } }

以上所述是小编给大家介绍的C#中的System.Timers.Timer定时器的使用和定时自动清理内存应用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:c# – 如何释放Parallel.Task使用的内存 | ·下一条:C#实现清理系统内存

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有