所以最近有人告诉我。用于任务的 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,你需要说 preTask。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");
});
}