使用continue在循环中使用

时间:2013-09-23 22:41:40

标签: c# performance while-loop idisposable continue

给出以下示例代码:

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方法? (交换机中缺少许多情况,我并不关心那里的效率。)

2 个答案:

答案 0 :(得分:6)

  

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

自从您使用Dispose()语句后,一次性用品将被正确调用using。当您continue时,Dispose()方法将在循环的下一次迭代之前被调用。

答案 1 :(得分:1)

使用语句将始终调用Dispose()这是使用它的全部要点