某些C/S程序长时间运行会出现假死状态,设置程序自动定时重启可以很方便地解决该问题。下面介绍exe程序每天晚上零点定时重启的运用。
一、使用timer控件
找到timer控件拖到界面上
二、timer的Tick事件,实现0点自动重启
private void timer1_Tick(object sender, EventArgs e)
{
string dateDiff = null;
//获取当前时间
DateTime DateTime1 = DateTime.Now;
//第二天的00点00分00秒
DateTime DateTime2 = DateTime.Now.AddDays(1).Date;
//计算两个时间相差多少秒
int sec = (int)DateTime2.Subtract(DateTime1).TotalSeconds;
if (sec == 0)
{
//延迟1秒执行(为什么要延迟?如果不延迟,重启的瞬间两个时间差依然还是0,就会再次触发重启)
Thread.Sleep(1000);
//--------------重启软件 start---------------
//开启新的实例
Process.Start(Application.ExecutablePath);
//关闭当前实例
Process.GetCurrentProcess().Kill();
//--------------重启软件 end-----------------
}
if (sec < 0)
{
this.timer1.Stop();
}
else
{
//把2个时间转成TimeSpan,方便计算
TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
//时间比较,得出差值
TimeSpan ts = ts1.Subtract(ts2).Duration();
//结果
dateDiff = ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "秒";
this.label3.Text = dateDiff;
}
}
三、显示效果
启动程序之后自动倒计时,效果如下:
以上内容来源于网络,由“WiFi之家网”整理收藏!
评论