그래서 최근에 .ContinueWith for Tasks를 사용하는 방법이 적절한 사용 방법이 아니라는 말을 들었습니다. 나는 아직 인터넷에서 이것에 대한 증거를 찾지 못했기 때문에 여러분들에게 물어보고 답이 무엇인지 볼 것입니다. 다음은 .ContinueWith를 사용하는 방법의 예입니다.
public Task DoSomething()
{
return Task.Factory.StartNew(() =>
{
Console.WriteLine("Step 1");
})
.ContinueWith((prevTask) =>
{
Console.WriteLine("Step 2");
})
.ContinueWith((prevTask) =>
{
Console.WriteLine("Step 3");
});
}
이제 저는 이것이 간단한 예이며 매우 빠르게 실행된다는 것을 알고 있지만 각 작업이 더 긴 작업을 수행한다고 가정합니다. 그래서 제가들은 것은 .ContinueWith에서 prevTask.Wait (); 그렇지 않으면 이전 작업이 완료되기 전에 작업을 수행 할 수 있습니다. 그게 가능할까요? 두 번째 및 세 번째 작업은 이전 작업이 완료된 후에 만 실행될 것이라고 가정했습니다.
코드 작성 방법을 들었습니다.
public Task DoSomething()
{
return Task.Factory.StartNew(() =>
{
Console.WriteLine("Step 1");
})
.ContinueWith((prevTask) =>
{
prevTask.Wait();
Console.WriteLine("Step 2");
})
.ContinueWith((prevTask) =>
{
prevTask.Wait();
Console.WriteLine("Step 3");
});
}