Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WaitAll中运行多个方法_C#_Multithreading - Fatal编程技术网

C# 在WaitAll中运行多个方法

C# 在WaitAll中运行多个方法,c#,multithreading,C#,Multithreading,我有几种方法,它们是数据库访问工具 await Task.WaitAll() { one(); two(); three(); } 没有一个方法是异步的,那么如何将它们包装到任务中,以便等待它们并让它们在各自的任务中运行呢?将每个方法放入一个任务中。运行: List<Task> allTasks = new List<Task>() { Task.Run(new Action(one)), Task.Run(new Action(two)),

我有几种方法,它们是数据库访问工具

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

没有一个方法是异步的,那么如何将它们包装到任务中,以便等待它们并让它们在各自的任务中运行呢?

将每个方法放入一个
任务中。运行

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);
List allTasks=new List()
{
Task.Run(新操作(一)),
Task.Run(新操作(两个)),
Task.Run(新操作(三)),
};
等待任务。WhenAll(所有任务);
请注意,此方法的等待版本实际上是
whalll
而不是
WaitAll
(同步阻塞)


当然,如果方法已经返回
Task
对象,那么这就简单多了。

将每个方法放在
任务中。运行

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);
List allTasks=new List()
{
Task.Run(新操作(一)),
Task.Run(新操作(两个)),
Task.Run(新操作(三)),
};
等待任务。WhenAll(所有任务);
请注意,此方法的等待版本实际上是
whalll
而不是
WaitAll
(同步阻塞)

当然,如果这些方法已经返回
Task
对象,那么这就简单多了