C# Stopwatch获取循环中某操作的时间消耗

 

  在C#中通常使用DateTime来表示当前时间,可以在一个操作的前后分别使用一个DateTime对象获取当前时间,再将两个DateTime对象相减获得时间差(TimeSpan对象),从而得到这个操作耗费了多少时间。

 

  但是,在某些情况下,需要循环获取执行一个操作,而这个操作可能并没有耗费太多的时间,只是循环的量级很大的时候,消耗的时间还是很可观的。这时如果使用上面的方法会比较麻烦。

C#提供了一个类Stopwatch,在操作开始前,调用Stopwatch对象的Start方法;操作结束后调用Stopwatch对象的Stop方法。在循环结束后,调用Stopwatch对象的Elapsed对应的属性可以获取总时间。

 

       Worksheet sheet = ExcelAddIn2.Globals.ThisAddIn.Application.ActiveSheet;
            Range allCells = sheet.Cells;

            Stopwatch addressWatch = new Stopwatch();
            Stopwatch addressLocalWatch = new Stopwatch();
            
            foreach (Range cell in allCells)
            {
                addressWatch.Start();
                var address = cell.Address;
                addressWatch.Stop();

                addressLocalWatch.Start();
                var addressLocal = cell.AddressLocal;
                addressLocalWatch.Stop();
            }

            double addressCoast = addressLocalWatch.Elapsed.TotalMilliseconds;

 

posted @ 2016-02-26 16:01  环游世界  阅读(1359)  评论(0编辑  收藏  举报