Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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# 列表上的异步函数_C#_Async Await_C# 5.0 - Fatal编程技术网

C# 列表上的异步函数

C# 列表上的异步函数,c#,async-await,c#-5.0,C#,Async Await,C# 5.0,我有一个函数如下所示: public async Task<decimal> GoToWeb(string Sym){} 公共异步任务GoToWeb(字符串Sym){ 在字符串列表上调用它的最佳方式是什么?MSDN中一篇关于使用async wait并行处理多LPE任务的文章。另一个是专门处理一系列任务的 简而言之,您可以执行以下操作之一: 开始所有任务,然后等待每项任务。它们都将并行运行,一旦它们全部完成,您的程序将继续运行 将任务放入集合,然后使用wait等待多个任务 第二种方

我有一个函数如下所示:

public async Task<decimal> GoToWeb(string Sym){}
公共异步任务GoToWeb(字符串Sym){
在字符串列表上调用它的最佳方式是什么?

MSDN中一篇关于使用
async wait
并行处理多LPE任务的文章。另一个是专门处理一系列任务的

简而言之,您可以执行以下操作之一:

  • 开始所有任务,然后等待每项任务。它们都将并行运行,一旦它们全部完成,您的程序将继续运行

  • 将任务放入集合,然后使用
    wait
    等待多个任务

  • 第二种方法的示例如下:

    List<string> Syms = ... // Create your list of strings
    IEnumerable<Task<decimal>> tasks = from Sym in Syms select GoToWeb(Sym);
    decimal[] results = await Task.WhenAll(tasks);
    
    列表符号=…//创建字符串列表
    IEnumerable tasks=从Syms中的Sym选择GoToWeb(Sym);
    十进制[]结果=等待任务。当所有(任务);
    
    您想尝试一次启动所有任务,还是希望最大数量的活动任务?我希望它们尽快完成。由于它们是web查询,我认为最好的方法是尽快启动它们。OTOH,如果它们都在同一台服务器上,并且该服务器允许最大数量的并发连接,尝试一次启动所有任务可能会导致错误。浏览器通常对每台服务器的连接数有限制。如果这个问题没有出现,当然,开始他们所有人。它没有,显然。。。