1、概述:给一条大MSDN的链接关于Stopwatch类最详细的教程 ,然后看着教程自己手动敲一边,加深映象,好记性不如烂键盘,哈哈,开个玩笑!

2、类位置:这个类在哪里,这个是重点,虽然C#IDE很强大,但是我们还是得简单的了解下。通过一段代码来说明:

using System;

namespace System.Diagnostics{

    public class Stopwatch:System.Object
   {
   }
}

是不是一目了然!
 
3、类属性介绍
下面是Stopwatch类的所有的属性以及属性的用法以及每个属性会配上一段代码实例来阐述这个属性到底是怎么用的:
 
Elapsed     表示当前实例(线程)测量出的总运行时间
public TimeSpan Elapsed{get;}   //该属性只读
using System;
using System.Threading;
using System.Diagnostics;
namespace Mulithreading{
class StopwatchStudy{
static void Main(string[] args){
Stopwatch sw=new Stopwatch();
sw.Start();//开始计时
Thread.Sleep();
sw.Stop();//计时结束
TimeSpan ts=sw.Elapsed;//获取当前实例(主线程)总共的运行时间
string Elapsed=string.Format("{0:00}:{1:00}:{2:00}:{3:00}",ts.Hours,ts.Minutes,ts.Seconds,ts.Milliseconds);//转换成字符串"{0:00}"表示对应的变量值以2位显示
Console.Write(Elapsed);
}
}
}

ElapsedMillseconds     获取当前实例(线程)的总运行时间(以毫秒为单位)    返回值类型为long;

using System;
using System.Threading;
using System.Diagnostics;
namespace Mulithreading
{
class StopwatchStudy
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();//开始计时
Thread.Sleep();
sw.Stop();//计时结束
long ts = sw.ElapsedMilliseconds;
Console.WriteLine(ts);
sw.Restart();
Thread.Sleep();
sw.Stop();
long ts2 = sw.ElapsedMilliseconds;
Console.WriteLine(ts2);
}
}
}

ElapsedTicks   一个只读长整型,表示当前实例测量得出的计时器刻度总数。

isRunning    返回一个bool值表示计时器是否正在运行,同样也是只读

4、方法介绍

Start()      这里就不做代码演示了,最基础的

Stop()      上同

Rsest() 方法     停止时间间隔测量,将运行时间重置为0

代码如下:

using System;
using System.Threading;
using System.Diagnostics;
namespace Mulithreading
{
class StopwatchStudy
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();//开始计时
Thread.Sleep();
sw.Stop();//计时结束
TimeSpan ts = sw.Elapsed;
string Elapsed = string.Format("{0:00}:{1:00}:{2:00}:{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds);
Console.WriteLine(Elapsed);
sw.Reset();//重置时间
TimeSpan ts2 = sw.Elapsed;//获取重置之后的总运行时间
string Elapsed1 = string.Format("{0:00}:{1:00}:{2:00}:{3:00}", ts2.Hours, ts2.Minutes, ts2.Seconds, ts2.Milliseconds);
Console.WriteLine(Elapsed1);
}
}
}

ReStart()     重置时间之后在开始重新测量时间相当于ReSet之后在Start

using System;
using System.Threading;
using System.Diagnostics;
namespace Mulithreading
{
class StopwatchStudy
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();//开始计时
Thread.Sleep();
sw.Stop();//计时结束
TimeSpan ts = sw.Elapsed;
string Elapsed = string.Format("{0:00}:{1:00}:{2:00}:{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds);
Console.WriteLine(Elapsed);
sw.Restart();
Thread.Sleep();
sw.Stop();
TimeSpan ts2 = sw.Elapsed;
string Elapsed1 = string.Format("{0:00}:{1:00}:{2:00}:{3:00}", ts2.Hours, ts2.Minutes, ts2.Seconds, ts2.Milliseconds);
Console.WriteLine(Elapsed1);
}
}
}

StartNew()      将运行时间设置为0,然后开始测量运行时间,也就是重新开始一个新的实例,通过类名调用(上面的其他例子都通过对象实例调用)

需要注意的是该方法是Stopwatch的静态方法

public static void StartNew()

 
 
 

Stopwatch类学习的更多相关文章

  1. [转]使用Stopwatch类实现高精度计时

    对一段代码计时同查通常有三种方法.最简单就是用DateTime.Now来进行比较了,不过其精度只有3.3毫秒,可以通过DllImport导入QueryPerformanceFrequency和Quer ...

  2. 用Stopwatch类获得程序运行时间

    我们可以用Stopwatch类获得程序的运行时间,在优化代码时,可以用此方法来查看优化前后程序所耗费的时间 //Stopwatch类別在System.Diagnostics命名空间里 Stopwatc ...

  3. 【转】Date类学习总结(Calendar Date 字符串 相互转换 格式化)

    原文网址:http://www.blogjava.net/jerry-zhaoj/archive/2008/10/08/233228.html Date类学习总结 1.计算某一月份的最大天数 Cale ...

  4. Stopwatch 类【转】

    一般我们想要测试使用那种方法或着那种类型效率更高,使用Stopwatch类进行测试就可以,我也是现在才知道,汗一个. 先来看个小示例,如下. 前提,先引用using System.Diagnostic ...

  5. System类学习笔记

    最近在学习源码的过程中发现:很多深层次的代码都用到了一个类System类,所以决定对System类一探究竟 本文先对System类进行了剖析,然后对System类做了总结 一.首先对该类的中的所有字段 ...

  6. 利用StopWatch类监控Java代码执行时间并分析性能

    springframework中的StopWatch类可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.一般用来测量代码执行所用的时间或者计算性能数据,在优化代码性能上可以使用Sto ...

  7. Date类学习总结(Calendar Date 字符串 相互转换 格式化)

    Date类学习总结 1.计算某一月份的最大天数 Calendar time=Calendar.getInstance();time.clear();time.set(Calendar.YEAR,yea ...

  8. Scala中的类学习

    Scala中的类学习 从java了解类的情况下,了解Scala的类并不难.Scala类中的字段自动带getter和setter方法,用@BeanProperty注解生成javaBean对象的getXX ...

  9. C# Stopwatch 类

    命名空间:System.Diagnostics Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.在典型的 Stopwatch 方案中,先调用 Start 方 ...

随机推荐

  1. Map类

    Map类 方法 方法名 返回类型 说明 addLayer(layer, index?) layer 增加一个esri图层到map中,示例: var baseMapLayer = new ArcGIST ...

  2. underscore概况

    看的是1.3.3,这个版本的中文源码解释比较多. 函数的中文注释:http://www.css88.com/doc/underscore1.5.2/#difference 源码的中文注释:http:/ ...

  3. cxrichedit导入WORD

    cxrichedit导入WORD word := CreateOLEObject('Word.Application');  word.Documents.Open(l_path,false);  w ...

  4. 使用Docker部署ASP.NET Core应用程序实践

    前言 最近把很火的Docker给看了,于是就磨拳擦掌要去实践一下.于是就拿之前一个aps.net core的项目(已被停止)去练手.该项目之前在ubuntu14.04上确保可以正常运行,所以docke ...

  5. TFS文件编码检查机制和修改(Team Foundation Server 2013)

    TFS的版本控制系统会自动按照下面的标准检测代码文件的编码格式: 1. 首先,如果代码文件包含了BOM部分,则使用BOM中制定的编码格式打开文档 什么是BOM (Byte order mark)? h ...

  6. centos 中 mongodb 启动失败的修复

    mongodb是使用centos的yum命令安装的,整个的安装过程如下: 1. 运行 yum info mongo-10gen查看是否有mongodb源,如有跳至第3步. 2. 运行 vim /etc ...

  7. QPS的计算

    QPS = req/sec = 请求数/秒 Q:如何根据日志查看一个服务的qps A: 一般access.log是记录请求的日志,tail  -f XXX.access.log ,可发现格式如下: 前 ...

  8. Easy前端正确删除datagrid的方式(避免直接删除索引没更新问题)

    在删除传参时,不要传索引来删除行 columns: [[ { title: '代码', field: 'Code', width: 100 }, { title: '名称', field: 'Name ...

  9. C#集合总结

    1.为什么引入集合? 因为数组长度是固定的,为了建立一个动态的"数组",所以引入了集合. 2.为什么引入ArrayList 非泛型集合? ArrayList可以填补数组的不足,进行 ...

  10. nginx 托管.net core的service文件

    在 /etc/systemd/system/ 中新建一个服务文件site1.service vim /etc/systemd/system/site1.service [Unit] Descripti ...