동일한 작업을 수행하는 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();
}
난 그냥 MS가 같은 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
것을 설명 하는 오래된 기사가 있습니다 -아마도 이것이 귀하의 질문에 대답 할 것입니다.)