详解C#中的System.Timers.Timer定时器的使用和定时自动清理内存应用
程序员文章站
2023-11-29 12:08:40
项目比较大有时候会比较卡,虽然有gc自动清理机制,但是还是有不尽人意的地方。所以尝试在项目启动文件中,手动写了一个定时器,定时清理内存,加快项目运行速度。
pub...
项目比较大有时候会比较卡,虽然有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定时器的使用和定时自动清理内存应用,希望对大家有所帮助