winform c# 如写一个定时开始,结束的时间代码
现在我有一个Test方法例如:protectedvoidTest(){//执行代码}怎么写一个点击按钮判断开始,结束时间,执行间隔5分钟执行Test的方法。说明一下:1:...
现在我有一个 Test方法 例如: protected void Test() { //执行代码}
怎么写一个点击按钮判断开始,结束时间,执行间隔5分钟执行Test的方法。
说明一下:
1:点击“启用“按钮后,判断当前系统时间和设定的时间,是否在有效范围内,
2:在第一个条件满足的情况下,每隔5分钟执行方法。
3:到达结束时间,自动停止,不再执行方法。 展开
怎么写一个点击按钮判断开始,结束时间,执行间隔5分钟执行Test的方法。
说明一下:
1:点击“启用“按钮后,判断当前系统时间和设定的时间,是否在有效范围内,
2:在第一个条件满足的情况下,每隔5分钟执行方法。
3:到达结束时间,自动停止,不再执行方法。 展开
展开全部
你后面又加要求了,代码就不一样了。
这里要使用Timer和Thread线程。下面是代码:
Timer timer;
//启动按钮
private void button1_Click(object sender, EventArgs e)
{
DateTime timeBegin = dateTimePicker1.Value;
DateTime timeEnd = dateTimePicker2.Value;
while(true)
{
DateTime now = DateTime.Now;
if (now >= timeBegin && now <= timeEnd)
{
timer = new Timer();
timer.Interval = 1000 * 60 * 5;
timer.Tick += new System.EventHandler(Test);
timer.Start();
break;
}
System.Threading.Thread.Sleep(200);//休眠200毫秒判断一次时间
}
}
//停止按钮
private void button2_Click(object sender, EventArgs e)
{
timer.Stop();
}
private void Test(object sender, EventArgs e)
{
DateTime timeBegin = dateTimePicker1.Value;
DateTime timeEnd = dateTimePicker2.Value;
DateTime now = DateTime.Now;
if (now >= timeBegin && now <= timeEnd)
{
//要做的事情
}
else
{
timer.Stop();
}
}
注意Test方法需按上面来写,原来的代码写在“要做的事情”这里。
更多追问追答
追问
谢谢您提供的方案,现在我想问这这个Threading启动后,怎么放在后台。窗口卡不不动了,非到有效时间。
追答
奥,这样的话启动按钮里的代码,要另外写成一个线程。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定时器可以满足你的需要
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询