我正在一个C#项目中调用Web API,在一个方法的循环内进行。通常不会有太多调用,但即使如此,我仍在考虑利用并行性。
到目前为止,我尝试的是:
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之前)
现在我看到它发布了,我想我也不能只删除响应变量,只需进行等待而不将其设置为任何变量
谢谢