猿问

Task.Run()和Task.Factory.StartNew()有什么区别

我有方法:


private static void Method()

{

    Console.WriteLine("Method() started");


    for (var i = 0; i < 20; i++)

    {

        Console.WriteLine("Method() Counter = " + i);

        Thread.Sleep(500);

    }


    Console.WriteLine("Method() finished");

}

我想在新任务中启动此方法。我可以像这样开始新任务


var task = Task.Factory.StartNew(new Action(Method));

或这个


var task = Task.Run(new Action(Method));

但是Task.Run()和之间有什么区别Task.Factory.StartNew()。创建Task实例后,他们两个都立即使用ThreadPool并启动Method()。什么时候应该使用第一个变量,什么时候应该使用第二个变量?


汪汪一只猫
浏览 1233回答 3
3回答
随时随地看视频慕课网APP
我要回答