C#中各种计时器用法小结
本文实例总结了c#中各种计时器用法。分享给大家供大家参考,具体如下:
1、使用 stopwatch 类 (system.diagnostics.stopwatch)
stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。在典型的 stopwatch 方案中,先调用 start 方法,然后调用 stop 方法,最后使用 elapsed 属性检查运行时间。
stopwatch 实例或者在运行,或者已停止;使用 isrunning 可以确定 stopwatch 的当前状态。使用 start 可以开始测量运行时间;使用 stop 可以停止测量运行时间。通过属性 elapsed、elapsedmilliseconds 或 elapsedticks 查询运行时间值。当实例正在运行或已停止时,可以查询运行时间属性。运行时间属性在 stopwatch 运行期间稳固递增;在该实例停止时保持不变。
默认情况 下,stopwatch 实例的运行时间值相当于所有测量的时间间隔的总和。每次调用 start 时开始累计运行时间计数;每次调用 stop 时结束当前时间间隔测量,并冻结累计运行时间值。使用 reset 方法可以清除现有 stopwatch 实例中的累计运行时间。
stopwatch在基础计时器机制中对计时器的刻度进行计数,从而测量运行时间。如果安装的硬件和操作系统支持高分辨率性能的计数器,则 stopwatch 类将使用该计数器来测量运行时间;否则,stopwatch 类将使用系统计数器来测量运行时间。使用 frequency 和 ishighresolution 字段可以确定实现 stopwatch 计时的精度和分辨率。
示例
system.diagnostics.stopwatch stopwatch = new system.diagnostics.stopwatch(); stopwatch.start(); //任务 1... stopwatch.stop(); _result.text += "<p>任务 1 用时:" + stopwatch.elapsedticks + "。</p>"; stopwatch.reset(); //若没有 reset,则会把任务 1 的用时累计进入任务 2 stopwatch.start(); //任务 2... stopwatch.stop(); _result.text += "<p>任务 2 用时:" + stopwatch.elapsedticks + "。</p>";
2、基于 windows 的标准计时器(system.windows.forms.timer)
windows 计时器是为单线程环境设计的,这个计时器是使用最简单的一种,只要把工具箱中的timer控件拖到窗体上,然后设置一下事件和间隔时间等属性就可以了。
3、基于服务器的计时器(system.timers.timer)
system.timers.timer不依赖窗体,是从线程池唤醒线程,是传统的计时器为了在服务器环境上运行而优化后的更新版本。
4、线程计时器(system.threading.timer)
线程计时器也不依赖窗体,是一种简单的、轻量级计时器,它使用回调方法而不是使用事件,并由线程池线程提供支持。
5、system.environment.tickcount
tickcount属性用来获取来自计算机的系统计时器的毫秒计数。
用法:
int starttime=system.environment.tickcount; //......任务...... int endtime=system.environment.tickcount; int runtime=endtime-starttime;//(注意单位是毫秒哦!)
6、使用timespan类(system.timespan)
timespan 对象表示时间间隔或持续时间,按正负天数、小时数、分钟数、秒数以及秒的小数部分进行度量。用于度量持续时间的最大时间单位是天。更大的时间单位(如月和年)的天数不同,因此为保持一致性,时间间隔以天为单位来度量。
timespan 对象的值是等于所表示时间间隔的刻度数。一个刻度等于 100 纳秒,timespan 对象的值的范围在 minvalue 和 maxvalue 之间。
timespan 值可以表示为 [-]d.hh:mm:ss.ff,其中减号是可选的,它指示负时间间隔,d 分量表示天,hh 表示小时(24 小时制),mm 表示分钟,ss 表示秒,而 ff 为秒的小数部分。即,时间间隔包括整的正负天数、天数和剩余的不足一天的时长,或者只包含不足一天的时长。例如,初始化为 1.0e+13 刻度的 timespan 对象的文本表示“11.13:46:40”,即 11 天,13 小时,46 分钟和 40 秒。
用法:
system.datetime starttime,endtime; system.timespan time; starttime=system.datetime.now; //......任务...... endtime=system.datetime.now; time=endtime-starttime; int runtime=time.milliseconds;//(以毫秒为单位)
更多关于c#相关内容感兴趣的读者可查看本站专题:《c#日期与时间操作技巧总结》、《c#字符串操作技巧总结》、《c#数组操作技巧总结》、《c#中xml文件操作技巧汇总》、《c#常见控件用法教程》、《winform控件用法总结》、《c#数据结构与算法教程》及《c#面向对象程序设计入门教程》
希望本文所述对大家c#程序设计有所帮助。
推荐阅读
-
c#中WebService的介绍及调用方式小结
-
C#中String StringBuilder StringBuffer类的用法
-
C#中的Internal关键字小结
-
ASP.NET C#中Application的用法教程
-
C#中datagridview的EditingControlShowing事件用法实例
-
C#中Activator.CreateInstance()方法用法分析
-
C#中的ICustomFormatter及IFormatProvider接口用法揭秘
-
PHP中ini_set和ini_get函数的用法小结
-
Python中defaultdict与lambda表达式用法实例小结
-
JavaScript中各种引用类型的常用操作方法小结