软件编程
位置:首页>> 软件编程>> C#编程>> 详解C#中的System.Timers.Timer定时器的使用和定时自动清理内存应用

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

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

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

项目比较大有时候会比较卡,虽然有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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com