C# 除非我也使用wait()方法,否则Task.Run(()=>;myMethod())无法工作

C# 除非我也使用wait()方法,否则Task.Run(()=>;myMethod())无法工作,c#,C#,我在跟踪我的计划。讲师已将此简单代码显示在屏幕上。它在讲师屏幕上工作 class Program { static void Main(string[] args) { Task.Run(() => Print()); Task.Factory.StartNew(() => Print()); //Print(); } private static void Print() {

我在跟踪我的计划。讲师已将此简单代码显示在屏幕上。它在讲师屏幕上工作

 class Program
{
    static void Main(string[] args)
    {
        Task.Run(() => Print());
        Task.Factory.StartNew(() => Print());

        //Print();
    }

    private static void Print()
    {
        for (int i = 0; i < 100; i++)
        {
            Console.WriteLine(i);
        }
    }
}

感谢您的帮助

您的
Main
方法返回,并且程序在任务开始运行之前退出


添加
.Wait
可以防止这种情况,因为
Main
方法现在将等待任务完成。但是,这样做,您首先就失去了使用
任务的任何好处,因为只要在
Main
内部调用
Print
也会这样做。

程序首先退出。。?用
线程睡眠(Timespan.FromSeconds(20))
替换等待并比较。。如果不是“激发并真正忘记”,结果通常必须等待。顺便说一下,您的链接不起作用,因为它需要登录。在
Main
方法的末尾添加
Console.ReadKey()
。这是否回答了您的问题@Sinatr我注意到有一行我忽略了,因为我不知道它对代码的工作方式有任何影响。对不起,我对异步编程的理解还处于初级阶段。作者没有解释这一点。“但是这样做,你就失去了在第一时间使用任务的任何好处”——在OP的例子中,这是正确的,但这通常不是100%正确的,因为你可以在启动任务和等待任务完成之间做其他事情。
var t = Task.Run(() => Print());
t.Wait();