我遇到一种情况,我正在async
调用返回和IDisposable
实例的方法。例如:
HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com"));
现在async
,在现场之前,使用IDisposable
实例时,使用“ response”变量的此调用和代码将包装在using语句中。
我的问题是,当async
关键字混入时,这是否仍然是正确的方法?即使代码可以编译,在下面的两个示例中,using语句仍可以按预期工作吗?
例子1
using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")))
{
// Do something with the response
return true;
}
例子2
using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")))
{
await this.responseLogger.LogResponseAsync(response);
return true;
}