在WaitAll中运行多个方法

时间:2015-09-26 00:41:54

标签: c# multithreading

我有几种方法是数据库访问工具。

await Task.WaitAll() {
  one();
  two();
  three();
 }

这些方法都不是异步的,那么如何将它们包装在一个任务中,以便我可以等待它们并让它们全部运行在自己的任务中?

1 个答案:

答案 0 :(得分:5)

将每个方法放在$("body").css("background", "linear-gradient(" + degrees + "deg, rgba(" + start1[0] + ", " + start1[1] + ", " + start1[2] + ", 1), rgba(" + start2[0] + ", " + start2[1] + ", " + start2[2] + ", 1))");

Task.Run

请注意,此方法的等待版本实际上是List<Task> allTasks = new List<Task>() { Task.Run(new Action(one)), Task.Run(new Action(two)), Task.Run(new Action(three)), }; await Task.WhenAll(allTasks); 而非WhenAll(它同步阻止)。

当然,如果方法已经返回WaitAll个对象,这会更简单。