gpt4 book ai didi

c# - foreach 的异步方法

转载 作者:行者123 更新时间:2023-11-30 14:35:59 25 4
gpt4 key购买 nike

我有一些异步方法

 public static Task<JObject> GetUser(NameValueCollection parameters)
{
return CallMethodApi("users.get", parameters, CallType.HTTPS);
}

然后我在下面写了方法

public static IEnumerable<JObject> GetUsers(IEnumerable<string> usersUids, Field fields)
{
foreach(string uid in usersUids)
{
var parameters = new NameValueCollection
{
{"uids", uid},
{"fields", FieldsUtils.ConvertFieldsToString(fields)}
};
yield return GetUser(parameters).Result;
}
}

这个方法是异步的?如何使用 Parallel.ForEach 编写此代码?

最佳答案

有点像这样。

public static IEnumerable<JObject> GetUsers(IEnumerable<string> usersUids, Field fields)
{
var results = new List<JObject>
Parallel.ForEach(usersUids, uid => {
var parameters = new NameValueCollection
{
{"uids", uid},
{"fields", FieldsUtils.ConvertFieldsToString(fields)}
};
var user = GetUser(parameters).Result;
lock(results)
results.Add(user);
});
return results;
}

注意:结果的顺序与您预期的不同。

关于c# - foreach 的异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11146811/

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