System.Threading.thread.Sleep(1000);
暂停一整个程序1秒钟,但是当第二个结束时它会完成所有可以在这段时间内完成的事情。例如:
Thread.Sleep(1000);
Console.WriteLine("A");
Thread.Sleep(1000);
Console.Writeline("B");
它将等待两秒钟并写入
一个
乙
如何正确使用暂停?
答案 0 :(得分:4)
如果您希望每秒发生一次,那么创建一个计时器。例如:
private System.Threading.Timer _timer;
void main()
{
_timer = new Timer(TimerTick, null, 1000, 1000);
// do other stuff in your main thread
}
void TimerTick(object state)
{
// do stuff here
}
有几种不同类型的计时器。如果您正在编写控制台程序,那么我建议使用System.Threading.Timer。在Windows窗体应用程序中,System.Windows.Forms.Timer
或System.Timers.Timer
。有关详细信息,请参阅Timers。
答案 1 :(得分:1)
Thread.Sleep()
表现得像你想象的那样;它只是暂停当前线程大约给定的毫秒数。
这里的问题是标准输出流不一定在每次调用Write时都会刷新到控制台(或指向它的任何地方)。相反,它可以缓冲一些内容,以便以更大的块来写出来以提高效率。尝试拨打Console.Out.Flush()
;在每个WriteLine()之后,你应该看到你期望的结果。