C# Stopwatch详解 转
C# Stopwatch详解
命名空间:System.Diagnostics;
namespace System.Diagnostics { // 提供一组方法和属性,可用于准确地测量运行时间。 public class Stopwatch { // 获取以每秒计时周期数表示的计时器频率。此字段为只读。 public static readonly long Frequency; // 指示计时器是否基于高分辨率性能计数器。此字段为只读。 public static readonly bool IsHighResolution; // 初始化 System.Diagnostics.Stopwatch 类的新实例。 public Stopwatch(); // 获取当前实例测量得出的总运行时间。 // 返回结果: // 一个只读的 System.TimeSpan,用于表示当前实例测量得出的总运行时间。 public TimeSpan Elapsed { get; } // 获取当前实例测量得出的总运行时间(以毫秒为单位)。 // 返回结果: // 一个只读长整型,表示当前实例测量得出的总毫秒数。 public long ElapsedMilliseconds { get; } // 获取当前实例测量得出的总运行时间(用计时器计时周期表示)。 // 返回结果: // 一个只读长整型,表示当前实例测量得出的计时器计时周期的总数。 public long ElapsedTicks { get; } // 获取一个指示 System.Diagnostics.Stopwatch 计时器是否在运行的值。 // 返回结果: // 如果 System.Diagnostics.Stopwatch 实例当前正在运行,并且在对某个时间间隔的运行时间进行测量,则该值为 true;否则为 false。 public bool IsRunning { get; } // 获取计时器机制中的当前最小时间单位数。 // 返回结果: // 一个长整型,表示基础计时器机制中的计时周期计数器值。 public static long GetTimestamp(); // 对新的 System.Diagnostics.Stopwatch 实例进行初始化,将运行时间属性设置为零,然后开始测量运行时间。 // 返回结果: // 刚刚开始测量运行时间的 System.Diagnostics.Stopwatch。 public static Stopwatch StartNew(); // 停止时间间隔测量,并将运行时间重置为零。 public void Reset(); // 停止时间间隔测量,将运行时间重置为零,然后开始测量运行时间。 public void Restart(); // 开始或继续测量某个时间间隔的运行时间。 public void Start(); // 停止测量某个时间间隔的运行时间。 public void Stop(); } }
使用流程
Stopwatch sw = new Stopwatch(); //开始计时 sw.Start(); //重新设置为零 sw.Reset(); //重新设置并开始计时 sw.Restart(); //结束计时 sw.Stop(); //获取运行时间间隔 TimeSpan ts = sw.Elapsed; //获取运行时间[毫秒] long times = sw.ElapsedMilliseconds; //获取运行的总时间 long times2 = sw.ElapsedTicks; //判断计时是否正在进行[true为计时] bool isrun = sw.IsRunning; //获取计时频率 long frequency = Stopwatch.Frequency;
Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。 在典型的 Stopwatch 方案中,先调用 Start 方法,然后调用 Stop 方法,最后使用 Elapsed 属性检查运行时间。
Stopwatch 实例或者在运行,或者已停止;使用 IsRunning 可以确定 Stopwatch 的当前状态。 使用 Start 可以开始测量运行时间;使用 Stop 可以停止测量运行时间。 通过属性 Elapsed、ElapsedMilliseconds 或 ElapsedTicks 查询运行时间值。 当实例正在运行或已停止时,可以查询运行时间属性。 运行时间属性在 Stopwatch 运行期间稳固递增;在该实例停止时保持不变。
默认情况下,Stopwatch 实例的运行时间值相当于所有测量的时间间隔的总和。 每次调用 Start 时开始累计运行时间计数;每次调用 Stop 时结束当前时间间隔测量,并冻结累计运行时间值。 使用 Reset 方法可以清除现有 Stopwatch 实例中的累计运行时间。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决