返回多个异步任务时,我如何知道哪个结果来自哪个任务?

Mor*_*ort -1 c# task async-await

我有以下代码来运行多个异步任务并等待所有结果。

string[] personStoreNames = _faceStoreRepo.GetPersonStoreNames();    
IEnumerable<Task<IdentifyResult[]>> identifyFaceTasks =
        personStoreNames.Select(storename => _faceServiceClient.IdentifyAsync(storename, faceIds, 1));
      var recognitionresults =
        await Task.WhenAll(identifyFaceTasks);
Run Code Online (Sandbox Code Playgroud)

当我得到结果时,如何获得每个任务结果的商店名称。IdentifyResult的每个数组都将用于特定的商店名称,但是我不确定如何以IdentifyResults及其在其中找到的商店名称结尾。

Ale*_*kov 5

正如MSDN所说,使用相同的索引来获取您用于参数的结果。

当所有

如果没有一个任务出错并且没有一个任务被取消,则生成的任务将以TaskStatus.RanToCompletion状态结束。返回任务的结果将设置为一个数组,其中包含所提供任务的所有结果,其顺序与提供时的顺序相同(例如,如果输入任务数组包含t1,t2,t3,则输出任务的Result将返回一个TResult [],其中arr [0] == t1.Result,arr [1] == t2.Result,arr [2] == t3.Result)。