Code:
 internal class Program
{
    private static void Main(string[] args)
    {
        const int iterCount = 999999999;
        var sum1 = 0;
        var sum2 = 0;
        using (new Dis())
        {
            var sw = DateTime.Now;
            for (var i = 0; i < iterCount; i++)
                sum1 += i;
            Console.WriteLine(sum1);
            Console.WriteLine(DateTime.Now - sw);
        }
        using (new Dis())
        {
            var sw = DateTime.Now;
            for (var i = 0; i < iterCount; i++)
                sum2 += i;
            Console.WriteLine(sum2);
            Console.WriteLine(DateTime.Now - sw);
        }
        Console.ReadLine();
    }
    private class Dis : IDisposable
    {
        public void Dispose(){}
    }
}
Two identical blocks in identical usings.
Output:
2051657985
00:00:00.3690996
2051657985
00:00:02.2640266
Second block takes 2.2 seconds ! But if to get rid of usings, durations became same ( ~0.3s, like first one). I've tried with .net framework 4.5 and .net core 1.1, in release, results are same.
Can anybody explain that behavior ?
 
    