0

如果我得到以下片段:

async Task MyFunc()
{
    await DoWork1();
    await DoWork2();
}
async Task<object> DoWork1() { /*Do work here*/ }
async Task<object> DoWork2() { /*Do other work here*/ }

void main()
{
    MyTask();
    //Do some stuff which needs MyFunc() to be completed beforehand.
}

我想做的是让 DoWork1() 和 DoWork2() 并行运行,但只有在它们都完成时才返回到 main()。

它会那样工作吗?还是有更好的解决方案?

4

1 回答 1

1

您可以使用WhenAll简单的并行性:

async Task MyFunc()
{
  var task1 = DoWork1();
  var task2 = DoWork2();
  await Task.WhenAll(task1, task2);
}
于 2013-03-04T13:12:22.730 回答