मैंने अभी TPL के उपयोग के बारे में 3 दिनचर्याएँ देखीं जो समान काम करती हैं; यहाँ कोड है:
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();
}
मैं तो बस समझ में नहीं आता क्यों एमएस क्योंकि वे सब काम TPL में नौकरियों को चलाने के लिए एक ही 3 अलग अलग तरीकों देता है: Task.Start()
, Task.Run()
और Task.Factory.StartNew()
।
मुझे बताओ, हैं Task.Start()
, Task.Run()
और Task.Factory.StartNew()
सभी एक ही उद्देश्य के लिए उपयोग किए जाते हैं या क्या उनका अलग महत्व है?
कब इस्तेमाल करना चाहिए Task.Start()
, कब इस्तेमाल Task.Run()
करना चाहिए और कब इस्तेमाल करना चाहिए Task.Factory.StartNew()
?
उदाहरण के साथ महान विवरण में परिदृश्य के अनुसार उनके वास्तविक उपयोग को समझने में कृपया मेरी मदद करें, धन्यवाद।
Task.Run
- शायद यह आपके सवाल का जवाब देगा;)