Внутри проекта С# я делаю некоторые вызовы в веб-api, дело в том, что я делаю их в цикле в методе. Обычно их не так много, но даже при том, что я думал об использовании parallelism.
То, что я пытаюсь сделать до сих пор,
public void DeployView(int itemId, string itemCode, int environmentTypeId)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(ConfigurationManager.AppSettings["ApiUrl"]);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var agents = _agentRepository.GetAgentsByitemId(itemId);
var tasks = agents.Select(async a =>
{
var viewPostRequest = new
{
AgentId = a.AgentId,
itemCode = itemCode,
EnvironmentId = environmentTypeId
};
var response = await client.PostAsJsonAsync("api/postView", viewPostRequest);
});
Task.WhenAll(tasks);
}
}
Но задайтесь вопросом, правильно ли этот путь, или я должен попытаться выполнить параллельный весь DeployView (т.е. даже до использования HttpClient)
Теперь, когда я вижу, что он опубликован, я считаю, что не могу просто удалить ответ переменной, просто сделайте ожидание, не устанавливая его для какой-либо переменной
Спасибо