当应用程序运行时睡眠在循环中,但睡眠太少
问题描述:
private static void Main(string[] args)
{
for (;;)
{
TemporaryCityTool.TemporaryCityTool.AddCity();
Console.WriteLine("waiting...");
Thread.Sleep(3600);
}
}
为什么Thread.sleep
无法正常工作。我一直在等待消息。我希望该应用程序将等待10分钟,然后再继续。当应用程序运行时睡眠在循环中,但睡眠太少
答
Thread.Sleep
发生在毫秒,而不是秒的值,所以这只是告诉C urrent线程等待3.6秒。如果你要等待10分钟,使用方法:
Thread.Sleep(1000 * 60 * 10); // 600,000 ms = 600 sec = 10 min
这可能是一个不恰当使用Sleep
,虽然。考虑使用定时器来代替,让你得到的线沿线的东西:
// Fire SomeAction() every 10 minutes.
Timer timer = new Timer(o => SomeAction(), null, 10 * 60 * 1000, -1);
有关更多详情,请参见this StackOverflow thread。
答
3600是3.6秒。如果你想让它睡10分钟,你应该把它设置为600000。
Thread.Sleep(1000 * 60 * 10); // Milliseconds(1000) * Seconds(60) * Minutes(10)
等于:
Thread.Sleep(600000);
答
thrad.sleep用千分之一秒10分钟将Thread.sleep代码(1000 * 60 * 10)
你为什么要使用Thread.sleep代码,您可以使用定时器
答
10分钟更好以毫秒为单位是600,000。你的睡眠只会等待3.6秒。它通常更清晰地使用时间跨度:
Thread.Sleep(new TimeSpan(0,10,0));
答
thx,我的大错误。 约翰Feminella我现在使用线程。
private static void Main(string[] args)
{
Thread thrd1 = new Thread(new ThreadStart(Trmain));
thrd1.Start();
}
private static void Trmain()
{
for (; ;)
{
Console.WriteLine("waiting 10 minutes...");
Thread.Sleep(1000 * 60 * 10);
}
}
THX所有
+0
你应该接受帮助最按一下旁边的勾选答案这个问题。而且您应该已将上述内容发布为您的原始问题的修改。 – GenericTypeTea 2010-06-19 19:14:33
我同意,但使用静态工厂方法可以让它更加清晰“FromMinutes(10)” :) – 2010-06-19 15:34:13