我有以下代码:
class Program
{
static void Main(string[] args)
{
Task[] tasks = new Task[3]
{
Task.Factory.StartNew(() => Console.WriteLine("Hello A")),
Task.Factory.StartNew(() => Console.WriteLine("Hello B")),
Task.Factory.StartNew(() => Console.WriteLine("Hello C"))
};
Task.WaitAll(tasks);
Console.WriteLine("Hi ABC");
}
}
我构建并运行上面的代码,它给出了输出:
Hello C
Hello B
Hello A
Hi ABC
但如果我评论 Task.WaitAll(tasks),输出之一是:
Hi ABC
Hello B
Hello C
这是否意味着当 Console.WriteLine("Hi ABC") 完成执行时,执行 Console.WriteLine("Hello A") 的线程没有机会完成执行?