如果我注释Console.ReadLine(),则只打印0。但当我取消评论时,所有99个数字都被打印出来了。读行是做什么的?很难把握这一点。
using System;
using System.Threading.Tasks;
namespace ConsoleApplication40
{
class Program
{
static void Main(string[] args)
{
Method();
Console.WriteLine("Inside Main");
//Console.ReadLine();
}
public static void Method()
{
Task.Run(new Action(LongTask));
Console.WriteLine("Inside Method");
}
private static void LongTask()
{
for (int i = 0; i < 100; i++)
{
Console.Write(i + ",");
}
}
}
}发布于 2017-12-12 07:18:31
Console.ReadLine()会导致主线程阻塞,直到用户键入某些内容,这允许另一个线程完成其任务。没有它,主线程和程序就会在任务完成之前终止。
发布于 2017-12-12 07:21:46
Console.ReadLine()正在尝试获取输入(可能来自用户)。所以它在等待的时候停止了程序。在此过程中,LongTask()正在运行,打印0到99。
如果您注释掉了Console.ReadLine(),Main()函数就会在LongTask()有时间打印所有数字之前退出,程序就结束了。
https://stackoverflow.com/questions/47767170
复制相似问题