问题情境:
程序随着时间运行,越来越大。暂时想到的两种方法,一是反攻代码,查看占内存大的函数,是不是没有回收。再就是暴力设定程序定时重启。
解决原理:
定时重启:暂设定timer,时间匹配执行restart。
源码:
private void timer1_Tick(object sender, EventArgs e)
{
//重启时间设定
int h = DateTime.Now.Hour;
int m = DateTime.Now.Minute;
int s = DateTime.Now.Second;
int h1 = 2;//2
int m1 = 0;//0
int s1 = 0;
int s2 = 30; if (h == h1 && m == m1 && s >= s1 && s <= s2)
{
Application.Restart();
}
}
注意问题:
1.考虑到,程序重启之后会不会再次重启。上述例子中timer间隔时间为半分钟。一开始硬性添加thread.stop,后来测试发现,程序启动之后,不是立即执行timer,而是等待timer的间隔时间之后再执行,这样就完美避过了。