所以最近有人告诉我,我使用.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");
});
}
https://stackoverflow.com/questions/11904821
复制相似问题