C#定时器和Thread.sleep [英] C# Timer or Thread.Sleep
本文介绍了C#定时器和Thread.sleep的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我运行一个Windows服务和使用循环和的Thread.Sleep重复任务,会是最好使用一个计时器的方法?
如果是一个code例子将是巨大的。
我目前使用这种code重复
INT curMinute;
INT最后一分钟= DateTime.Now.AddMinutes(-1).Minute;而(条件)
{
curMinute = DateTime.Now.Minute; 如果(最后一分钟< curMinute){
//你做一次,每分钟code在这里
最后一分钟= curMinute;
} Thread.sleep代码(50000); //睡50秒 如果(这会破坏你出这个错误条件){
打破; //离开循环结构
}
}
解决方案
类节目
{
静态无效的主要(字串[] args)
{
定时器定时器=新定时器(新TimerCallback(TimeCallBack),空,1000,50000);
Console.Read();
timer.Dispose();
} 公共静态无效TimeCallBack(对象o)
{
curMinute = DateTime.Now.Minute;
如果(最后一分钟< curMinute){
//你做一次,每分钟code在这里
最后一分钟= curMinute;
}
}
在code可能类似于像一个以上
I am running a windows service and using a loop and Thread.Sleep to repeat a task, would it be better to use a timer method?
If yes a code example would be great
I am currently using this code to repeat
int curMinute;
int lastMinute = DateTime.Now.AddMinutes(-1).Minute;
while (condition)
{
curMinute = DateTime.Now.Minute;
if (lastMinute < curMinute) {
// do your once-per-minute code here
lastMinute = curMinute;
}
Thread.Sleep(50000); // sleeps for 50 seconds
if (error condition that would break you out of this) {
break; // leaves looping structure
}
}
解决方案
class Program
{
static void Main(string[] args)
{
Timer timer = new Timer(new TimerCallback(TimeCallBack),null,1000,50000);
Console.Read();
timer.Dispose();
}
public static void TimeCallBack(object o)
{
curMinute = DateTime.Now.Minute;
if (lastMinute < curMinute) {
// do your once-per-minute code here
lastMinute = curMinute;
}
}
The code could resemble something like the one above
这篇关于C#定时器和Thread.sleep的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文