• C# Stopwatch


    问题一:前几天写并行计算的实际应用——通讯录的时候,用到了stopwatch来计时,发现这个计时是真正的计时。

        Stopwatch stopwatch = new Stopwatch();
        TimeSpan timeSpan;
        double time1,time2;
        stopwatch.Start();
        f1();//花费时间t1
        stopwatch.Stop();
        timeSpan = stopwatch.Elapsed;
        time1 = timeSpan.TotalMilliseconds;//time1=t1
    
        stopwatch.Start();
        f2();//花费时间t2
        stopwatch.Stop();
        timeSpan = stopwatch.Elapsed;
        time2 = timeSpan.TotalMilliseconds;//time2=t1+t2

    其中time2的时间是t1+t2,与我预想的tim2=t2 不同。。。

    解决方法:

    1.使用不同的计时器stopwatch 和stopwatch2,如代码:

        Stopwatch stopwatch = new Stopwatch();
        Stopwatch stopwatch2 = new Stopwatch();
        TimeSpan timeSpan;
        double time1,time2;
        stopwatch.Start();
        f1();//花费时间t1
        stopwatch.Stop();
        timeSpan = stopwatch.Elapsed;
        time1 = timeSpan.TotalMilliseconds;//time1=t1
    
        stopwatch2.Start();
        f2();//花费时间t2
        stopwatch2.Stop();
        timeSpan = stopwatch2.Elapsed;
        time2 = timeSpan.TotalMilliseconds;//time2=t2

    2.使用reset函数清空计时器stopwatch,也很容易理解,代码略。

    问题二:见代码:

        Stopwatch stopwatch = new Stopwatch();
        Stopwatch stopwatch2 = new Stopwatch();
        TimeSpan timeSpan;
        double time1,time2;
        stopwatch.Start();
        f1();//花费时间t1
        stopwatch.Stop();
        timeSpan = stopwatch.Elapsed;
        time1 = timeSpan.TotalMilliseconds;//time1=t1
    
        stopwatch2.Start();
        f2();//花费时间t2
        stopwatch.Stop();//此处应该为stopwatch2.Stop();的。。。
        timeSpan = stopwatch2.Elapsed; time2 = timeSpan.TotalMilliseconds;//time2=t2

    在第二个计时器stopwatch2结束时,把stopwatch2 敲成了stopwatch,那么问题来了,我的程序竟然没受到影响。。。
    原因是:当stopwatch实例正在运行或已停止时,可以查询运行时间属性。

    就是这句话,也就是说

    虽然stopwatch2没有stop,但是我代码中的这句话timeSpan = stopwatch2.Elapsed; 把当前所记录的时间提取了出来。。。

    所以说我记录的时间没受影响,即time1=t1 ,time2=t2.

  • 相关阅读:
    盒子垂直方向外边距合并和盒子塌陷
    css选择器
    sublime常用快捷键
    浏览器内核
    JS基础知识归纳
    AngularJS实现单页面应用
    mysql备份思路
    mysql服务器参数--innodb引擎
    mysql如何查看索引使用情况以及优化
    mysql优化sql语句的思路浅谈
  • 原文地址:https://www.cnblogs.com/gongpixin/p/4968290.html
Copyright © 2020-2023  润新知