zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    截图软件FastStone
    java中继承thread类的其他类的start()方法与run()方法
    .net连接MySql 出错
    题解【Codeforces1139C】Edgy Trees
    题解【Codeforces580C】Kefa and park
    题解【Codeforces1234D】Distinct Characters Queries
    题解【洛谷P4025】[PA2014]Bohater
    题解【洛谷P1445】[Violet]樱花
    题解【洛谷P2516】[HAOI2010]最长公共子序列
    题解【洛谷P3275】[SCOI2011]糖果
  • 原文地址:https://www.cnblogs.com/gongpixin/p/4968290.html
Copyright © 2011-2022 走看看