zoukankan      html  css  js  c++  java
  • C#知识点-StopWatch-计时

    简单介绍

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

    基本用法

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

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

      
    复制代码
                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();
    复制代码

      运行结果:

       

      备注:程序中我 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();
                }
    复制代码

      运行结果:

      

    结尾

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

  • 相关阅读:
    在zend framework框架中try{}catch(Exception e){}的跳转问题
    【上】安全HTTPS-全面具体解释对称加密,非对称加密,数字签名,数字证书和HTTPS
    iOS 图像处理-剪裁图像
    Delphi DBGrid记录全选和反选拖动处理
    在DbGrid中,不按下Ctrl,单击鼠标如何实现多选?谢谢
    在DBGrid中实现多选功能
    回车跳到下一个EDIT
    远程控制篇:用Delphi模拟键盘输入/鼠标点击
    SQL的拼接语句在DELPHI中怎么写
    Delphi DbGridEh实现表格没有内容的渐变效果
  • 原文地址:https://www.cnblogs.com/leo9527/p/10141183.html
Copyright © 2011-2022 走看看