【发布时间】:2019-02-20 08:54:10
【问题描述】:
我在我的 Web 应用程序中调用了一个静态方法。此方法使用不同类的单例实例。这个单例实例基本上是一个 HttpClient 来发出一些 api 请求。
目前我没有任何机制来自动化多用户测试。这种方法有什么后果吗?我知道如果我们不在其中使用静态变量,通常的静态方法是线程安全的。但我不确定它在单例情况下的表现。
public static class API
{
private static System.Net.Http.HttpClient httpClient;
public static System.Net.Http.HttpClient Instance
{
get
{
return httpClient ?? (httpClient = new System.Net.Http.HttpClient());
}
}
}
public static async Task<string> GetData(string id)
{
HttpResponseMessage response = await
API.Instance.GetAsync(string.Format(requestURL, id));
response.EnsureSuccessStatusCode();
// return URI of the created resource.
return await response.Content.ReadAsStringAsync();
}
【问题讨论】:
标签: c# .net static thread-safety singleton