问题情境:

  程序随着时间运行,越来越大。暂时想到的两种方法,一是反攻代码,查看占内存大的函数,是不是没有回收。再就是暴力设定程序定时重启。

解决原理:

  定时重启:暂设定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的间隔时间之后再执行,这样就完美避过了。