C#项目实战经验——计时方法总结

前言

我们在开发C#程序的过程中经常需要计算某段程序执行的时间,比如调用的某个算法的时间,这时候我们就需要利用计时工具,本文就是详细介绍在C#中我们常用哪些计时工具。

1、计时方法---StopWatch

在C#中我们可以利用Stopwatch这个类来实现计时功能,需要引用System.Diagnostics命名空间,具体使用步骤如下:

第一步、首先new一个Stopwatch 这个类的对象,然后调用这个类中的方法Start,此时开始计时,然后使用 Thread.Sleep(2000);模拟程序执行了2秒;

第二步、调用stopwatch.Stop();来停止计时

第三步、调用stopwatch.Elapsed.TotalMilliseconds;来获取从Start到Stop花费了多少时间,单位是毫秒

csharp 复制代码
 Stopwatch stopwatch = new Stopwatch();
            stopwatch.Start();
            Thread.Sleep(2000);
            stopwatch.Stop();
            double time = stopwatch.Elapsed.TotalMilliseconds;
            Console.WriteLine(time);

输出 结果:

csharp 复制代码
2001.4197

从最终的输出结果看是花费了将近2000毫秒。

如果我们想继续利用这个stopwatch对象 计时的话,我们可以撰写如下代码:

csharp 复制代码
 stopwatch.Restart();
            Thread.Sleep(3000);
            stopwatch.Stop();
            time = stopwatch.Elapsed.TotalMilliseconds;
            Console.WriteLine(time);

可以看出我们调用了Restart方法,这个方法的作用就是让计时器重新计时,这样我们就可以对这个stopwatch进行重复利用了。

最终输出结果是将近3秒,这是因为我使用了 Thread.Sleep(3000);模拟程序运行了3秒。

csharp 复制代码
3000.8774

2、计时方法---DateTime

由于DateTime有一个Now属性,这个属性的作用是记录当前系统的时间,所以我们想要实现计时功能的话,可以计算两次时间的时间差就可以,代码如下:

csharp 复制代码
 DateTime startTime = DateTime.Now;
 Thread.Sleep(2000);
 DateTime stopTime = DateTime.Now;
 time = (stopTime - startTime).TotalMilliseconds;
 Console.WriteLine(time);

代码逻辑如下:

第一步、记录刚开始时间

第二步、记录结束时间

第三步、然后让两个时间相减,然后获取TotalMilliseconds属性,这个属性的意思是:将时间换算成多少毫秒,比如时间是3秒50毫秒,则最终输出值:3050毫秒。

输出结果:

csharp 复制代码
2004.3153

年入30万+C#上位机实战必备教程推荐

1、《C#串口通信从入门到精通》

2、《 C#与PLC通信从入门到精通 》

3、《C# Modbus通信从入门到精通》

4、《 C#Socket通信从入门到精通 》

5、《C# MES通信从入门到精通》

6、《winform控件从入门到精通》

相关推荐
h汉堡6 分钟前
C/C++内存管理
java·c语言·开发语言·c++·学习
旋风小飞棍20 分钟前
如何在sheel中运行spark
大数据·开发语言·scala
xinxiyinhe29 分钟前
内存泄漏与OOM崩溃根治方案:JVM与原生内存池差异化排查手册
java·开发语言·jvm
愚润求学38 分钟前
【Linux】基础 IO(一)
linux·运维·服务器·开发语言·c++·笔记
oliveira-time1 小时前
ArrayList和LinkedList区别
java·开发语言
yutian06061 小时前
C语言中的宏
c语言·开发语言
红衣小蛇妖1 小时前
Python基础学习-Day23
开发语言·python·学习
孞㐑¥1 小时前
Linux之进程控制
linux·开发语言·c++·经验分享·笔记
Akiiiira1 小时前
【日撸 Java 300行】Day 14(栈)
java·开发语言
景天科技苑1 小时前
【Rust泛型】Rust泛型使用详解与应用场景
开发语言·后端·rust·泛型·rust泛型