每次使用Thread.Sleep在c#中的循环中等待一秒钟

问题描述 投票:0回答:1

我正在尝试每秒在屏幕上打印“ p”。

当我运行此:

while (true)
    Thread.Sleep(1000); 
    Console.WriteLine("p");

它根本不打印。但是当我运行它时:

while (true)
    Console.WriteLine("p");
    Thread.Sleep(1000); 

无需等待就可以打印。有人可以向我解释一下并提出解决方法吗?

c# system system.threading.channels
1个回答
3
投票

您不循环整个代码

此:

while (true)
    Thread.Sleep(1000); 
    Console.WriteLine("p");

与此相同:

while (true)
{
    Thread.Sleep(1000); 
}
Console.WriteLine("p");

您需要在要执行循环的所有行周围显式设置括号,否则仅在下一条指令上循环:这就是您要寻找的东西:

while (true)
{
    Thread.Sleep(1000); 
    Console.WriteLine("p");
}
© www.soinside.com 2019 - 2024. All rights reserved.