[C#] Was ist der Unterschied zwischen Task.Run () und Task.Factory.StartNew ()


Answers

Siehe diesen Blogartikel , der den Unterschied beschreibt. Grundsätzlich tun:

Task.Run(A)

Ist das gleiche wie:

Task.Factory.StartNew(A, CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default);   
Question

Ich habe Methode:

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");
}

Und ich möchte diese Methode in einer neuen Aufgabe starten. Ich kann so eine neue Aufgabe beginnen

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

oder dieses

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

Aber gibt es einen Unterschied zwischen Task.Run() und Task.Factory.StartNew() . Beide verwenden ThreadPool und starten Method () sofort nach dem Erstellen der Instanz der Aufgabe. Wann sollten wir die erste Variante verwenden und wann die zweite?