我的一位同事发现了我们的代码的问题,过了好一会儿,追捕究竟发生了什么事,但它可以通过这个简单的例子来证明最好的:
// Fails
class Program
{
static void Main(string[] args)
{
Task.Run(() => Console.WriteLine("Hello World"));
Console.ReadKey();
}
}
// Works fine
class Program
{
static void Main(string[] args)
{
Console.Write(String.Empty);
Task.Run(() => Console.WriteLine("Hello World"));
Console.ReadKey();
}
}
这是一个从这个玩弄从主线程写入到控制台的任何地方可以让后台线程写入到控制台还不清楚,但我们正在努力理解为什么发生这种情况。 谁能解释什么实现写入主线程控制台的第一个片段不?