我刚刚意识到我们应该重复使用HttpClient而不是一次又一次地处理它们。但是,由于我的应用程序在asp.net上,如果我不这样做:
using (var client = new HttpClient())
{
client.SendAsync(someurl, something);
}
相反,将客户端作为静态变量放在我的控制器中,例如:
public class MyController{
public static HttpClient MyClient;
public class MyController()
{
////some configuration for the HttpClient
}
public async Task<Model> get()
{
await MyClient.PostAsJsonAsync(url, someModel);
return something
}
}
当多用户呼叫我的api时,会触发与线程相关的问题吗?
这篇msdn文章确实说PostAsync是线程安全的。 https://msdn.microsoft.com/en-us/library/system.net.http.httpclient(v=vs.110).aspx#Anchor_5
它是否适用于我的使用场景?此外,如果有数百个并发请求,单个HttpClient会处理这个吗?