小编Mes*_*ros的帖子

Thread.Sleep(0) 在 .NET Core 3.1 上没有按预期工作

因此,我正在根据以下书籍学习 .NET Thread 类:Exam Ref 70-483: Programming in C#,我注意到一些我不知道为什么会发生或是否应该发生的事情。

这本书在第 4 页给了我这部分代码:

public static class Program
{
   public static void ThreadMethod()
   {
       for (int i = 0; i < 10; i++)
       {
           Console.WriteLine("ThreadProc: {0}", i);
           Thread.Sleep(0);
       }
   }
   public static void Main()
   {
       Thread t = new Thread(new ThreadStart(ThreadMethod));
       t.Start();
       for (int i = 0; i < 4; i++)
       {
           Console.WriteLine("Main thread: Do some work.");
           Thread.Sleep(0);
       }
       t.Join();
   }
}
Run Code Online (Sandbox Code Playgroud)

预期结果如下所示,因为在每个 Thread.Sleep(0) 处,当前线程退出并继续处理队列中的下一个线程:

// Main thread: Do some work.  
// …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading .net-core

3
推荐指数
1
解决办法
121
查看次数

标签 统计

.net ×1

.net-core ×1

c# ×1

multithreading ×1