C#知识点-StopWatch-计时_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > C#知识点-StopWatch-计时

C#知识点-StopWatch-计时

 2015/1/1 14:07:20  梦在前方  程序员俱乐部  我要评论(0)
  • 摘要:目录简单介绍基本用法结尾简单介绍Stopwatch可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。一般用来测量代码执行所用的时间或者计算性能数据,在优化代码性能上可以使用Stopwatch来测量时间。基本用法使用的时候需要引用System.Diagnostics命名空间。先调用Start方法,然后调用Stop方法,最后使用Elapsed属性或者使用ElapsedMilliseconds属性得到运行时间(这两个属性的区别是前者得到的是TimeSpan实例,后者得到的是毫秒)
  • 标签:C#

目录

  • 简单介绍
  • 基本用法
  • 结尾

简单介绍

  class="selflink">Stopwatch 可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。一般用来测量代码执行所用的时间或者计算性能数据,在优化代码性能上可以使用Stopwatch来测量时间。

基本用法

  使用的时候需要引用 System.Diagnostics 命名空间。先调用 Start 方法,然后调用 Stop 方法,最后使用 Elapsed 属性或者使用 ElapsedMilliseconds 属性得到运行时间(这两个属性的区别是前者得到的是TimeSpan实例,后者得到的是毫秒)。使用 IsRunning 可以确定 Stopwatch 的当前状态是正在运行还是已经停止。每次调用 Start 时开始累计运行时间计数;每次调用 Stop 时结束当前时间间隔测量,并冻结累计运行时间值。 使用 Reset 方法可以清除现有 Stopwatch 实例中的累计运行时间。

  下面的示例演示如何使用 Stopwatch 类来确定应用程序的执行时间:

  logs_code_hide('e0c99b38-3677-4fae-ac6e-2437c068b56c',event)" src="/Upload/Images/2015010114/2B1B950FA3DF188F.gif" alt="" />
            Stopwatch stopwatch = new Stopwatch();
            //第一次计时
            stopwatch.Start();
            Console.WriteLine("Stopwatch is running:{0}",stopwatch.IsRunning);//判断当前Stopwatch的状态
            System.Threading.Thread.Sleep(1000);//耗时操作
            stopwatch.Stop();
            Console.WriteLine("Using Elapsed output runTime:{0}", stopwatch.Elapsed.ToString());//这里使用时间差来输出
            Console.WriteLine("Using ElapsedMilliseconds output runTime:{0}", stopwatch.ElapsedMilliseconds);//这里面使用毫秒来输出
            Console.WriteLine("===================================================");
            //第二次计时
            stopwatch.Start();
            System.Threading.Thread.Sleep(1000);//耗时操作
            stopwatch.Stop();
            Console.WriteLine("The second RunTime:{0}", stopwatch.ElapsedMilliseconds);//这里面使用毫秒来输出
            Console.WriteLine("===================================================");
            //第三次计时(这里使用了Restart)
            stopwatch.Restart();//这里使用Restart来启动计时(会把前面的时间清空)
            System.Threading.Thread.Sleep(1000);//耗时操作
            stopwatch.Stop();
            Console.WriteLine("Using Restart, so runTime:{0}", stopwatch.ElapsedMilliseconds);//这里面使用毫秒来输出
            Console.ReadKey();
View Code

  运行结果:

   

  备注:程序中我 Sleep 了1000ms 但是输入结果是第一次是1002 第二次是2003 最后是1000,有一定的误差跟电脑性能和当前CPU的状态有关系(这里我是猜测的)。

在实际的项目中,有时候我们无法使用Console.WriteLine() 或者 MessageBox.Show()来得到运行时间,这时候我们就需要把时间写进一个文本文件中。

  下面的示例演示如何使用 Stopwatch 类来确定应用程序的执行时间并把时间输出到文本文件中(这里我为了简单使用的是 StreamWriter):

  
            const string path = @"D:\StopwatchDemo.txt";

            using (StreamWriter streamWriter = new StreamWriter(path, true, Encoding.UTF8))
            {
                streamWriter.WriteLine("Start");
                streamWriter.Flush();
                Stopwatch stopwatch = Stopwatch.StartNew();
                System.Threading.Thread.Sleep(1000);//耗时操作
                stopwatch.Stop();
                streamWriter.WriteLine("RunTime:{0}", stopwatch.ElapsedMilliseconds);//以毫秒的形式写进文件
                streamWriter.Flush();
            }
View Code

  运行结果:

  

结尾

    C#中用于计时的操作不只是 Stopwatch 还有其他的如 Timer、TimeSpan 等。我这里只是用Stopwatch来举个例子。  

 

  

上一篇: 台湾认定小米苹果等品牌未违反数据保护法规 下一篇: 没有下一篇了!
发表评论
用户名: 匿名