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的命名空间是using System.Diagnostics;

从上文看到Restart()等于Reset()加Start()

使用流程如下

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 实例中的累计运行时间。

文章转载自:https://blog.csdn.net/e295166319/article/details/52799830

(转)C# Stopwatch详解的更多相关文章

  1. C# Stopwatch详解

    namespace System.Diagnostics { // // 摘要: // 提供一组方法和属性,可用于准确地测量运行时间. public class Stopwatch { // // 摘 ...

  2. 【C#】 Stopwatch详解

    Stopwatch的命名空间是using System.Diagnostics; 1 namespace System.Diagnostics 2 { 3 // 4 // 摘要: 5 // 提供一组方 ...

  3. Middleware详解

    Middleware详解 在第1章项目结构分析中,我们提到Startup.cs作为整个程序的入口点,等同于传统的Global.asax文件,即:用于初始化系统级的信息(例如,MVC中的路由配置).本章 ...

  4. Asp.Net MVC学习总结之过滤器详解(转载)

    来源:http://www.php.cn/csharp-article-359736.html   一.过滤器简介 1.1.理解什么是过滤器 1.过滤器(Filters)就是向请求处理管道中注入额外的 ...

  5. 详解C#泛型(二) 获取C#中方法的执行时间及其代码注入 详解C#泛型(一) 详解C#委托和事件(二) 详解C#特性和反射(四) 记一次.net core调用SOAP接口遇到的问题 C# WebRequest.Create 锚点“#”字符问题 根据内容来产生一个二维码

    详解C#泛型(二)   一.自定义泛型方法(Generic Method),将类型参数用作参数列表或返回值的类型: void MyFunc<T>() //声明具有一个类型参数的泛型方法 { ...

  6. hadoop2.7作业提交详解之文件分片

    在前面一篇文章中(hadoop2.7之作业提交详解(上))中涉及到文件的分片. JobSubmitter.submitJobInternal方法中调用了int maps = writeSplits(j ...

  7. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  8. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  9. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

随机推荐

  1. 01:CENTOS使用VIRTUALENV搭建独立的PYTHON环境-PYTHON虚拟环境

    1.1 安装virtualenv环境 https://www.cnblogs.com/liuyansheng/p/6141197.html 1.安装virtualenv yum install pyt ...

  2. Python-制作抖音图片

    ---------------------------------------------------------------------------------------------------- ...

  3. dart基础语法

    .关于 runApp() 上面的实例代码中使用了 runApp() 方法,runApp 方法接收的指定参数类型为 Widget,即: runApp(Widget).在 Flutter 的组件树(wid ...

  4. 为linux dns (bind named)服务器配置 单独的笔记

    注意: 当在把 named.ca文件下载好13个根dns服务器的 全球记录后, 就不再需要别的 dns服务器来辅助获得了. 只要把所有 本地服务器 不能解析的请求, 都发送到 . 点根去就行了, 所以 ...

  5. Kubernetes之Controllers三

    StatefulSets StatefulSet is the workload API object used to manage stateful applications. Note: Stat ...

  6. JavaScript(2)

    JavScript在页面上显示时间,首先我们先来了解关于时间的一些简单方法: getFullYear()  获取当前年份,getMonth() 0-n(一月到十二月),getDate() 1-31(月 ...

  7. Lintcode214-Max of Array-Naive

    Given an array with couple of float numbers. Return the max value of them. Example Example 1: Input: ...

  8. HDU 5792 World is Exploding(树状数组+离散化)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=5792 题意: 思路: lmin[i]:表示左边比第i个数小的个数. lmax[i]:表示左边比第i个 ...

  9. python学习 day07打卡 文件操作

    本节主要内容: 初识文件操作 只读(r,rb) 只读(w,wb) 追加(a,ab) r+读写 w+写读 a+追加写读 其他操作方法 文件的修改以及另一种打开文件句柄的方法 一. 初识文件操作 使用py ...

  10. 【搬运工】——Java中的static关键字解析(转)

    原文链接:http://www.cnblogs.com/dolphin0520/p/3799052.html static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大 ...