我有一些異步方法異步方法用foreach
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編寫此代碼?
謝謝!工作正常。 – BILL
請注意,上述代碼中存在爭用條件,因爲「結果」列表正在被同時修改。不可預知的結果和失敗將隨機發生。至少你需要一個圍繞'Add'操作的鎖。 –
感謝bojan ...我只是在沒有測試的情況下輸入了代碼作爲插圖......它似乎只是逐字使用。哎喲!無論如何,我固定了比賽條件 –