因此,最近有人告诉我,我如何将.ContinueWith用于任务不是正确的使用方式。我还没有在互联网上找到证据,所以我会问你们,看看答案是什么。这是我如何使用.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");
});
}