因此,我正在根据以下书籍学习 .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)