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

作者:Jugg书生 时间:2022-11-07 14:09:54 

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


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定时器的使用和定时自动清理内存应用网站的支持!

来源:http://www.cnblogs.com/qinyi173/archive/2017/06/30/7098127.html

标签:c,定时器,使用,system.timers.timer
0
投稿

猜你喜欢

  • Java Kryo,Protostuff,Hessian序列化方式对比

    2023-10-24 12:41:15
  • Java 实战范例之线上婚纱摄影预定系统的实现

    2021-08-08 14:19:42
  • C#实现的字符串转MD5码函数实例

    2023-03-02 15:34:43
  • IDEA中sout快捷键无效问题的解决方法

    2023-11-28 21:27:02
  • C#实现简单串口通信

    2023-05-14 08:15:27
  • IDEA入门级使用教程你居然还在用eclipse?

    2022-03-27 07:35:19
  • C#中隐式运行CMD命令行窗口的方法

    2021-06-11 18:47:07
  • 浅谈C# 构造方法(函数)

    2021-11-23 08:01:49
  • Java AtomicInteger类使用方法实例讲解

    2023-01-18 16:22:49
  • Java中的AQS同步队列问题详解

    2021-08-16 19:50:23
  • java定义受限制的类型参数操作

    2022-12-16 09:44:03
  • SpringBoot3.0整合chatGPT的完整步骤

    2023-01-29 01:34:36
  • 关于Mybatis的@param注解及多个传参

    2021-09-10 21:17:21
  • C#中Equality和Identity浅析

    2022-10-11 10:43:38
  • Android引用开源框架通过AsyncHttpClient实现文件上传

    2021-09-22 20:02:05
  • C#中Convert.ToDecimal()报错问题的解决

    2022-05-09 06:05:56
  • java中ThreadLocal的基本原理

    2022-03-28 01:13:44
  • Spring 代理 Bean 获取不到原始 Bean 对象注解解决方法

    2022-10-31 17:06:08
  • Android 自定义圆形带刻度渐变色的进度条样式实例代码

    2023-11-23 13:21:38
  • Mybatis多表关联查询的实现(DEMO)

    2022-05-03 14:50:03
  • asp之家 软件编程 m.aspxhome.com