在应用程序运行时睡眠循环,但睡眠太少

sen*_*ale 6 c# sleep thread-sleep

private static void Main(string[] args)
{
    for (;;)
    {
        TemporaryCityTool.TemporaryCityTool.AddCity();
        Console.WriteLine("waiting...");
        Thread.Sleep(3600);
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么Thread.sleep不工作.我一直在等待消息.我希望该应用程序等待10分钟然后再继续.

Joh*_*lla 15

Thread.Sleep取值以毫秒为单位,而不是秒,因此这只会告诉当前线程等待3.6秒.如果您想等待10分钟,请使用:

Thread.Sleep(1000 * 60 * 10);  // 600,000 ms = 600 sec = 10 min
Run Code Online (Sandbox Code Playgroud)

不过,这可能是不恰当的用途Sleep.考虑使用Timer,以便获得以下内容:

// Fire SomeAction() every 10 minutes.
Timer timer = new Timer(o => SomeAction(), null, 10 * 60 * 1000, -1);
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅此StackOverflow线程.