您的位置:首页 > 健康 > 美食 > 百度网址大全手机浏览器_温州建设_营销公司排名_疫情最新政策最新消息

百度网址大全手机浏览器_温州建设_营销公司排名_疫情最新政策最新消息

2024/12/23 14:43:52 来源:https://blog.csdn.net/weixin_45023644/article/details/143531060  浏览:    关键词:百度网址大全手机浏览器_温州建设_营销公司排名_疫情最新政策最新消息
百度网址大全手机浏览器_温州建设_营销公司排名_疫情最新政策最新消息

C# 高精度计时器Stopwatch

  • 引言
  • 经典举例
    • (1)启动和停止方法实例
    • (2)复位和重启方法实例
  • 小结

引言

偶然发现C# 的计时器类Stopwatch,他特别适合测量运行时间,使用简单、计时精确。它源于命名空间System.Diagnostics,使用时必须using引用。

经典举例

下面用一秒延时的实例来创建一个最简单的实例。

(1)启动和停止方法实例

        //按键单击private void button_watch_Click(object sender, EventArgs e){            Console.WriteLine("action_spent_time:" + watch(action));}//模拟用户函数耗时private void action(){Thread.Sleep(1000);}//开始和停止定时器public static double watch(Action action){//实例化Stopwatch stopWatch = new Stopwatch();//启动定时器stopWatch.Start();//用户任务action();//停止定时器stopWatch.Stop();//返回计时器时间return stopWatch.Elapsed.TotalMilliseconds;}

打印显示

action_spent_time:1014.7956

(2)复位和重启方法实例

    //按键单击private void button_watch_Click(object sender, EventArgs e){watchResetAndRestart(action);}//模拟用户函数耗时private void action(){Thread.Sleep(1000);}//复位和重启计时器时器public void watchResetAndRestart(Action action){//实例化Stopwatch stopWatch = new Stopwatch();//启动定时器stopWatch.Start();//用户任务action();Console.WriteLine("action:"+ stopWatch.Elapsed.TotalMilliseconds);//复位定时器stopWatch.Reset();Console.WriteLine("action reset:" + stopWatch.Elapsed.TotalMilliseconds);//重启定时器stopWatch.Restart();//用户任务action();Console.WriteLine("action Restart:" + stopWatch.Elapsed.TotalMilliseconds);//复位定时器stopWatch.Reset();}
}

打印显示:

action:1000.8485
action reset:0
action Restart:1009.2571

小结

是不是觉得很简单。小伙伴们可以用起来。
1、实例中可以看到精度可以得到0.1微秒使用double类型,我认为算精度很高的吧,不需要这么高精度可以做运算舍去,或者使用其它的更低精度的属性,如stopWatch.ElapsedMilliseconds等。
2、复位reset()和停止Stop()的功能都停止了计时器,但是reset,将时间复位为0了,这里注意一下就好。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com