1

意思是没有延迟?

一本书说下面**

Thread.Sleep(0) 立即放弃线程的当前时间片,自愿将 CPU 交给其他线程。

**

这是否意味着即使应该执行一条语句,但为睡眠提供 0 会暂时跳过执行?

4

5 回答 5

4

0 表示没有将控制权返回给线程的最短时间段。但是,如果此时有任何其他线程准备好运行,它们很可能会被调度,因此您的线程将休眠一些非零时间段。

您指定的任何其他时间段也是如此 -Sleep(N)意味着它应该至少休眠指定的时间,但可能会休眠一些任意更长的时间。

同时, Sleep(0) 确实意味着如果没有其他线程准备好运行,控制可以/将立即返回给您的线程。

于 2013-06-29T04:10:36.960 回答
2

它允许操作系统继续处理可能正在等待的任何其他线程。下一条语句在当前线程恢复后立即执行——这可能会立即执行,也可能在一段时间后其他线程退出。

于 2013-06-29T04:09:21.423 回答
1

这意味着您将允许其他进程运行他们的代码,但也尝试尽快继续您自己的代码。

于 2013-06-29T04:08:48.840 回答
-1

Thread.Sleep(0)您的代码会暂停一个周期,然后安排到下一个可用插槽。

于 2013-06-29T04:10:36.990 回答
-3

它可能就像

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);
    }
}
于 2013-06-29T04:12:58.587 回答