相关疑难解决方法(0)

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");
}
Run Code Online (Sandbox Code Playgroud)

我想在一个新的Task中启动这个方法.我可以开始这样的新任务

var task = Task.Factory.StartNew(new Action(Method));
Run Code Online (Sandbox Code Playgroud)

或这个

var task = Task.Run(new Action(Method));
Run Code Online (Sandbox Code Playgroud)

但是Task.Run()和之间有什么区别吗Task.Factory.StartNew()?它们都使用ThreadPool并在创建Task的实例后立即启动Method().当我们应该使用第一个变体和第二个?

c# multithreading task-parallel-library

155
推荐指数
6
解决办法
8万
查看次数

标签 统计

c# ×1

multithreading ×1

task-parallel-library ×1