Asynchronous 如何使方法调用异步

Asynchronous 如何使方法调用异步,asynchronous,c#-4.0,async-await,dataset,Asynchronous,C# 4.0,Async Await,Dataset,我有大约30个方法调用填充数据集。我想让这些调用并行异步。 请给我一些代码的想法。下面是一些电话 ds = (DS)dbManager.ExecuteDataSet(CommandType.StoredProcedure, Proc1, ds, tableNames); ds = (DS)dbManager.ExecuteDataSet(CommandType.StoredProcedure, Proc2, ds, tableNames); ds = (DS)dbManager.Execu

我有大约30个方法调用填充数据集。我想让这些调用并行异步。 请给我一些代码的想法。下面是一些电话

 ds = (DS)dbManager.ExecuteDataSet(CommandType.StoredProcedure, Proc1, ds, tableNames);
 ds = (DS)dbManager.ExecuteDataSet(CommandType.StoredProcedure, Proc2, ds, tableNames);
 ds = (DS)dbManager.ExecuteDataSet(CommandType.StoredProcedure, Proc3, ds, tableNames);
 ds = (DS)dbManager.ExecuteDataSet(CommandType.StoredProcedure, Proc4, ds, tableNames);
 ds = (DS)dbManager.ExecuteDataSet(CommandType.StoredProcedure, Proc5, ds, tableNames);
 ds = (DS)dbManager.ExecuteDataSet(CommandType.StoredProcedure, Proc6, ds, tableNames);
 ds = (DS)dbManager.ExecuteDataSet(CommandType.StoredProcedure, Proc7, ds, tableNames);
 ds = (DS)dbManager.ExecuteDataSet(CommandType.StoredProcedure, Proc8, ds, tableNames);

据我所知,你的程序1,程序2。。是过程名。只需将它们加载到列表中,然后尝试以下操作:

string[] procNames = {"Proc1","Proc2","Proc3","Proc4","Proc5"};
List<string> list =new List<string>();
foreach (var procName in procNames)
{
    list.Add(procName);
}
Parallel.ForEach(list, current =>
{
    ds = (DS)dbManager.ExecuteDataSet(CommandType.StoredProcedure, current, ds, tableNames);
});

请注意,这不会以任何特定顺序执行您的过程。

我想让这些调用并行异步-异步和并行是相关的,但概念不同。通常,C中的异步与引入并行无关。我认为,他指的是并行-以加速处理。@Yuri:是的,我确定-但我想说的是,值得注意它们之间的区别。@ARC您用于数据库访问的内容也将推动您的决策。根据dbManager的实现方式,您可能没有并行运行这些调用的选项,而C4.0对async await一无所知。