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.

  • 相关阅读:
    Android应用签名
    Win7环境下TreeSaver编译环境的搭配
    TreeSaver 使用教程整理——Step 4: Using a Title Figure
    使用jquery获取父元素或父节点的方法
    IIS 错误代码分析手册
    敏捷开发 规范
    Asp.net中时间格式化的几种方法
    在Oracle中使用Guid
    jquery 当前时间
    JQuery一种取同级值的方式 比如你在GridView中如下
  • 原文地址:https://www.cnblogs.com/gongpixin/p/4968290.html
Copyright © 2011-2022 走看看