Ich habe gerade 3 Routinen bezüglich der TPL-Verwendung gesehen, die den gleichen Job machen. Hier ist der Code:
public static void Main()
{
Thread.CurrentThread.Name = "Main";
// Create a task and supply a user delegate by using a lambda expression.
Task taskA = new Task( () => Console.WriteLine("Hello from taskA."));
// Start the task.
taskA.Start();
// Output a message from the calling thread.
Console.WriteLine("Hello from thread '{0}'.",
Thread.CurrentThread.Name);
taskA.Wait();
}
public static void Main()
{
Thread.CurrentThread.Name = "Main";
// Define and run the task.
Task taskA = Task.Run( () => Console.WriteLine("Hello from taskA."));
// Output a message from the calling thread.
Console.WriteLine("Hello from thread '{0}'.",
Thread.CurrentThread.Name);
taskA.Wait();
}
public static void Main()
{
Thread.CurrentThread.Name = "Main";
// Better: Create and start the task in one operation.
Task taskA = Task.Factory.StartNew(() => Console.WriteLine("Hello from taskA."));
// Output a message from the calling thread.
Console.WriteLine("Hello from thread '{0}'.",
Thread.CurrentThread.Name);
taskA.Wait();
}
Ich verstehe einfach nicht , warum MS 3 verschiedene Möglichkeiten gibt Arbeitsplätze in TPL laufen , weil sie alle Arbeiten gleich: Task.Start(), Task.Run()und Task.Factory.StartNew().
Sag mir, sind Task.Start(), Task.Run()und Task.Factory.StartNew()alle für den gleichen Zweck verwendet oder haben sie andere Bedeutung?
Wann sollte man verwenden Task.Start(), wann sollte man verwenden Task.Run()und wann sollte man verwenden Task.Factory.StartNew()?
Bitte helfen Sie mir, ihre tatsächliche Verwendung gemäß dem Szenario anhand von Beispielen detailliert zu verstehen, danke.
Task.Run- vielleicht wird dies Ihre Frage beantworten;)