4

给定以下示例代码:

var count = 0;
while (count < 5)
{
    using (var request = new HttpRequestMessage(HttpMethod.Get, requestUri))
    using (var response = await StaticHttpClient.Client.SendAsync(request))
    {
        if (!response.IsSuccessStatusCode)
        {
            switch ((int)response.StatusCode)
            {
                case 500:
                case 504:
                    continue;
            }
        }
        else
        {  ... }
    }

    count++;
}

那些 IDisposable 对象会在此方法中泄漏内存,还是会正确调用 Dispose 方法?(开关中缺少很多案例,我不关心那里的效率)。

4

2 回答 2

8

那些 IDisposable 对象会在此方法中泄漏内存,还是会正确调用 Dispose 方法?

Dispose()由于您使用了using声明,因此一次性用品将被正确调用。当 youcontinue时,Dispose()方法将在循环的下一次迭代之前被调用。

于 2013-09-23T22:43:35.697 回答
1

using 语句将始终调用 Dispose() 这是使用它的重点

于 2013-09-23T22:45:05.700 回答