是否意味着没有延迟?
一本书如下所述 **
Thread.Sleep(0)放弃线程的当前时间片 立即,自愿将CPU交给其他线程。
**
这是否意味着即使一个语句应该被执行,给睡眠设为0会暂时跳过执行?
答案 0 :(得分:4)
0表示没有最小时间段,在此之前控制权将返回给线程。但是,如果此时有任何其他线程准备好运行,则可能会安排它们,因此您的线程将在非零时间段内休眠。
对于您指定的任何其他时间段也是如此 - Sleep(N)
表示它应该睡眠指定时间的最小,但可能会休眠一段任意更长的时间。< / p>
同时,Sleep(0)表示如果没有其他线程准备好运行,控制可以/将立即返回到您的线程。
答案 1 :(得分:2)
它允许操作系统继续处理可能正在等待的任何其他线程。下一个语句将在当前线程恢复时立即执行 - 这可能是立即执行,或者在其他线程生成后的一段时间后执行。
答案 2 :(得分:1)
这意味着您将允许其他进程运行其代码,但也会尝试尽快继续使用您自己的代码。
答案 3 :(得分:0)
使用Thread.Sleep(0)
,您的代码会暂停一个周期,然后安排到下一个可用的广告位。
答案 4 :(得分:-2)
可能就像
bool isRunning;
public void Main
{
Thread t = new Thread(Method);
t.Start();
isRunning = true;
}
public void Method(int i)
{
while(isRunning)
{
i = 0;
i++;
Thread.Sleep(0);
Console.WriteLine(i);
}
}