gpt4 book ai didi

c# - 任务 - 属性分配

转载 作者:行者123 更新时间:2023-11-30 21:27:39 25 4
gpt4 key购买 nike

最初,我有以下内容:

foreach (Product product in products)
{
product.ImageUri = _imageClient.GetImageUri(product.GetImagePath());
}

我想做的是并行处理所有产品,而不是一次处理一个。我已将 _imageClient.GetImageUri(...) 更新为 _imageClient.GetImageUriAsync(...)。我现在可以执行以下操作:

List<Task<Uri>> tasks = new List<Task<Uri>>();

foreach (Product product in products)
{
Task<Uri> task = _imageClient.GetImageUriAsync(product.GetImagePath());
tasks.Add(task);
}

var results = await Task.WhenAll(tasks);

我在使用这种方法时遇到的问题是我现在必须遍历结果,将每个结果与正确的产品匹配并分配属性。

有没有办法将这两种方法结合起来,以便我可以将属性分配作为任务的一部分来执行,以便所有这些都可以并行运行?

最佳答案

关于:

    List<Task<Uri>> tasks = new List<Task<Uri>>();

foreach (Product product in products)
{
tasks.Add(Task.Run( async () => product.ImageUri = await _imageClient.GetImageUriAsync(product.GetImagePath()) ));
}

await Task.WhenAll(tasks);

你甚至不需要最后的结果。

关于c# - 任务 - 属性分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57457470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com