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  秒。

用法:

        /// <summary>/// Description:/// 1. 获取"当前时间"与"比较时间"之间的毫秒差/// 2. 静态方法/// Author     : 付义方/// Create Date: 2014-03-06/// </summary>/// <param name="compareTime">比较时间</param>/// <returns>毫秒差</returns>public static int GetDifferMilliSecond(DateTime compareTime){return DateTime.Now.Subtract(compareTime).Milliseconds;}
 DateTime tempTime = DateTime.Now;_logger.Info("Task Wait begin", string.Format("{0}开始执行{1}个任务",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),execTask));try{Task.WaitAll(tasks);//等待执行发送任务完成UpTaskStatus(_MdDatacubeofjobinfotaskModel.PlanCode, _ActionSet); //判断该批次数据是否执行完毕}catch { }_logger.Info("Task Wait end", string.Format("{0}已执行完成{1}个任务, 耗时{2}/ms",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),execTask, TimeHelper.GetDifferMilliSecond(tempTime)));

C#中各种计时器 Stopwatch、TimeSpan相关推荐

  1. Spring中的计时器StopWatch

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 需要记录每个任务执行时间,或者记录一段代码执行时间,简单方法是打印当前时间与执行完时间的差值,若执行 ...

  2. C#中计时器Stopwatch的使用

    场景 C#中创建计时器用来记录程序运行的时间. Stopwatch 字段 Frequency  获取以每秒计时周期数表示的计时器频率. 此字段为只读. IsHighResolution  指示计时器是 ...

  3. [转载]C#中各种计时器

    1.使用 Stopwatch 类 (System.Diagnostics.Stopwatch) Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.在典型的 S ...

  4. python中time的用法_python中的计时器timeit的使用方法

    本文介绍了python中的计时器timeit的使用方法,分享给大家,具体如下: timeit 通常在一段程序的前后都用上time.time(),然后进行相减就可以得到一段程序的运行时间,不过pytho ...

  5. 计时器StopWatch示例

    计时器 StopWatch stwatch = new StopWatch(getClass().getSimpleName());try{stwatch.start(joinPoint.getSig ...

  6. python程序运行时间计时软件_python中的计时器timeit的使用方法

    这篇文章主要介绍了关于python中的计时器timeit的使用方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 本文介绍了python中的计时器timeit的使用方法,分享给大家,具 ...

  7. python计时器timeit返回秒数_python中的计时器timeit的使用方法

    本文介绍了python中的计时器timeit的使用方法,分享给大家,具体如下: timeit 通常在一段程序的前后都用上time.time(),然后进行相减就可以得到一段程序的运行时间,不过pytho ...

  8. java中GUI中显示当前时间_javaGUI界面实现动态时间显示——Swing中的计时器Timer

    在Java中要实现时间的动态显示有不少种方法.下面就介绍其中一种简单的方法给你们.java Swing中的计时器Timer,主要用到javax.swing.*包下的Timer类,该类能够周期的触发Ac ...

  9. python中time模块中的倒计时_python中的计时器timeit的使用方法

    Python3该怎么学,完全不懂,新手小白下周就要考试Python3该怎么学,完全不懂,新手小白下周就要考试了.只对D语言和机器python语言很简单的,不知你们是什么考试,如果是普通考试. pyth ...

最新文章

  1. MySQL 存储过程初研究
  2. MySQL的SQL语句如何优化?
  3. python 安装库 报错 SSL: CERTIFICATE_VERIFY_FAILED 解决方法
  4. c++ qt工作量和移动端相比_学习笔记 --- QT
  5. 错误 SQL TOP子句中的行数必须是整数
  6. VTK:BiDimensionalWidget二维小部件用法实战
  7. windows下Meteor+AngularJS开发的坑
  8. iOS10 资料汇总:值得回看的 10 篇 iOS 热文
  9. windows下node安装
  10. gitHub上传项目
  11. 【个人笔记】OpenCV4 C++ 快速入门 19课
  12. 离散数学计算机科学与技术答案,2计算机科学与技术专业本科离散数学期末复习题2...
  13. PHP反三角函数,反三角函数求导公式
  14. linux命令关闭浏览器,linux命令行浏览器的使用方法
  15. kali Linux外网渗透控制Android安卓手机系统。
  16. Nodejs http request 报错 “ETIMEDOUT“,“ECONNRESET“ , “ENOTFOUND“,“ECONNREFUSED”,“EHOSTUNREACH“
  17. 遗传算法之:八皇后问题
  18. 51单片机实现出租车计价器
  19. PMP(第六版)中的合同总结
  20. 用AI说再见!“辣眼睛”的买家秀 1

热门文章

  1. uniapp radio如何实现取消选中
  2. 出现Permission denied的解决办法
  3. 携住科技与华为签署合作协议,落地“携住数智酒店”HarmonyOS原子化服务
  4. org.apache.catalina.startup.Catalina start之过程分析
  5. 抖音上如何拓展企业的品牌影响力和销售渠道?抖音企业号了解一下
  6. 流利说拟进行合股:计划14合1,蘑菇街等亦深陷泥潭
  7. 开源的HTML5前端框架Amaze UI发布,推进mobile first前端Web方案
  8. 基于SSM+SpringBoot+MySQL+VUE的汽车销售管理系统
  9. 2023-2028年中国胶原蛋白行业深度调研与投资趋势分析报告
  10. GAMS系列分享8--电力系统最优潮流—24母线最优潮流