详解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定时器的使用和定时自动清理内存应用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!