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

项目启动增加定时器手动清理

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

 

转自 http://www.cnblogs.com/qinyi173/p/7098127.html

转载于:https://www.cnblogs.com/zl2613/p/7115919.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值