StopWatch 时间计数器简介:
Stopwatch 可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。一般用来测量代码执行所用的时间或者计算性能数据,在优化代码性能上可以使用Stopwatch来测量时间。
在多处理器计算机上,线程在哪个处理器上运行并不重要。 但是,由于 BIOS 中的 bug 或硬件抽象层 (HAL) ,你可以在不同的处理器上获取不同的计时结果。 若要为线程指定处理器关联,请使用 ProcessThread.ProcessorAffinity 方法。
属性:
Elapsed 获取当前实例测量得出的总运行时间。
ElapsedMilliseconds 获取当前实例测量得出的总运行时间(以毫秒为单位)。
ElapsedTicks 获取当前实例测量得出的总运行时间(用计时器计时周期表示)。
IsRunning 获取一个指示 Stopwatch 计时器是否在运行的值。
方法
GetTimestamp 获取计时器机制中的当前最小时间单位数。
Reset 停止时间间隔测量,并将运行时间重置为零。
Restart 停止时间间隔测量,将运行时间重置为零,然后开始测量运行时间。
Start 开始或继续测量某个时间间隔的运行时间。
StartNew 对新的 Stopwatch 实例进行初始化,将运行时间属性设置为零,然后开始测量运行时间。
Stop 停止测量某个时间间隔的运行时间。
引用的空间名:使用的时候需要引用 System.Diagnostics 命名空间。
static void Main(string\[\] args)
{
List<int> ListGeneric = new List<int> { 5, 9, 1, 4 };
//non-generic list
ArrayList ListNonGeneric = new ArrayList { 5, 9, 1, 4 };
// timer for generic list sort
Stopwatch s = Stopwatch.StartNew();
ListGeneric.Sort();
s.Stop();
Console.WriteLine($"Generic Sort: {ListGeneric} \\n Time taken: {s.Elapsed.TotalMilliseconds}ms");
//timer for non-generic list sort
Stopwatch s2 = Stopwatch.StartNew();
ListNonGeneric.Sort();
s2.Stop();
Console.WriteLine($"Non-Generic Sort: {ListNonGeneric} \\n Time taken: {s2.Elapsed.TotalMilliseconds}ms");
Console.ReadLine();
}
具体教程看:https://docs.microsoft.com/zh-cn/dotnet/api/system.diagnostics.stopwatch?view=net-5.0
2、基于 Windows 的标准计时器(System.Windows.Forms.Timer)
Windows 计时器是为单线程环境设计的,这个计时器是使用最简单的一种,只要把工具箱中的Timer控件拖到窗体上,然后设置一下事件和间隔时间等属性就可以了。
3、基于服务器的计时器(System.Timers.Timer)
System.Timers.Timer不依赖窗体,是从线程池唤醒线程,是传统的计时器为了在服务器环境上运行而优化后的更新版本。
4、线程计时器(System.Threading.Timer)
线程计时器也不依赖窗体,是一种简单的、轻量级计时器,它使用回调方法而不是使用事件,并由线程池线程提供支持。
5、System.Environment.TickCount
TickCount属性用来获取来自计算机的系统计时器的毫秒计数。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章