我正在从服务发送请求,并显式调用注销API以释放资源,但是标题中出现错误。我正在使用Task.Run()来防止死锁。
当前,这是我的代码:
var baseAddress = new Uri(baseServiceUrl);
var cookieContainer = new CookieContainer();
using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer })
using (var client = new HttpClient(handler) { BaseAddress = baseAddress })
{
client.Timeout = TimeSpan.FromSeconds(3600);
client.DefaultRequestHeaders.Authorization = authentication;
var requestUrl = GenerateServiceRequestUrl();
using (var response = Task.Run(() => client.GetAsync(requestUrl)).GetAwaiter().GetResult())
{
//call logout explicity
using (Task.Run(() => client.GetAsync(baseServiceUrl + LogoutUrl).GetAwaiter().GetResult())) { }
return new MyServiceResponse(response, getContent);
}
}
错误来自以下代码行,明确调用了注销:
using (Task.Run(() => client.GetAsync(_baseUrl + LogoutUrl).GetAwaiter().GetResult())) { }
但是,当我尝试将其更改为以下代码时,错误消失了:
using (client.GetAsync(baseServiceUrl + LogoutUrl).Result) { }
我的问题是,是否可以使用Task.Run()进行注销调用?