Saya baru saja melihat 3 rutinitas mengenai penggunaan TPL yang melakukan pekerjaan yang sama; ini kodenya:
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();
}
Aku hanya tidak mengerti mengapa MS memberikan 3 cara yang berbeda untuk menjalankan pekerjaan di TPL karena mereka semua bekerja sama: Task.Start(), Task.Run()dan Task.Factory.StartNew().
Katakan, apakah Task.Start(), Task.Run()dan Task.Factory.StartNew()semua digunakan untuk tujuan yang sama atau apakah mereka memiliki arti yang berbeda?
Kapan sebaiknya satu digunakan Task.Start(), kapan harus digunakan Task.Run()dan kapan harus digunakan Task.Factory.StartNew()?
Tolong bantu saya untuk memahami penggunaan sebenarnya sesuai skenario dengan sangat detail dengan contoh, terima kasih.
Task.Run- mungkin ini akan menjawab pertanyaan Anda;)