Aynı işi yapan TPL kullanımı ile ilgili 3 rutin gördüm; İşte kod:
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();
}
Sadece MS aynı VUK içinde çünkü onlar tüm çalışmaları işlerini çalıştırmak için 3 farklı yöntem sunar neden anlamıyorum: Task.Start()
, Task.Run()
ve Task.Factory.StartNew()
.
Beni, edilir Söyle Task.Start()
, Task.Run()
ve Task.Factory.StartNew()
hepsi aynı amaçla kullanılabilir veya farklı bir öneme var?
Ne zaman Task.Start()
, ne zaman Task.Run()
ve ne zaman kullanılmalı Task.Factory.StartNew()
?
Lütfen senaryolara göre gerçek kullanımlarını örneklerle çok ayrıntılı olarak anlamama yardımcı olun, teşekkürler.
Task.Run
- belki bu soruya cevap olacak;)