【C#教程】停表-StopWatch

[collapse title="引子"]

引子

看到标题,你可能会摸不清这篇文章的内容.你以为文章要讲这个吗?

NO!是这个


[/collapse]

介绍[code]Stopwatch[/code]

命名空间:
System.Diagnostics
Assemblies:
System.Runtime.Extensions.dll, System.dll, netstandard.dll

提供一组方法和属性,可用于准确地测量运行时间。

public class Stopwatch
继承

Stopwatch

更多内容请点击
[wailian]https://docs.microsoft.com/zh-cn/dotnet/api/system.diagnostics.stopwatch?redirectedfrom=MSDN&view=netframework-4.8[/wailian]

使用方法

开始计时

//初始化新实例
Stopwatch sw = new Stopwatch();
//开始计时
sw.Start();

停止计时

sw.Stop();

[v_error]多次测量时默认返回的是总时间,若要获得单次时间,必须先调用Reset()[/v_error]

获取时间

属性名称返回值含义
[code]Elapsed[/code][code]TimeSpan[/code]表示当前实例测量得出的总运行时间。
[code]ElapsedMilliseconds[/code][code]Int64[/code]表示当前实例测量得出的总毫秒数。
[code]ElapsedMilliseconds[/code][code]Int64[/code]表示当前实例测量得出的计时器计时周期的总数。

实例

并行for循环与普通for循环效率比较
[collapse title="展开源代码"]

using System;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;

namespace StopWatchPro
{
    class Program
    {
        static void Main(string[] args)
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();

            //多线程
            ParallelLoopResult result =
            Parallel.For(0, 10000, i =>
            {
                Console.Write(i);
                Thread.Sleep(1);

            });
            sw.Stop();
            Console.WriteLine("Parallel.For总共花费{0}ms.", sw.ElapsedMilliseconds);

            //单线程
            sw.Reset();
            sw.Start();
            for (int i = 0; i < 10000; i++)
            {
                Console.Write(i);
                Thread.Sleep(1);
            }
            sw.Stop();
            Console.WriteLine("for总共花费{0}ms.", sw.ElapsedMilliseconds);

            Console.ReadKey();
        }
    }
}

[/collapse]

声明:本文为原创,作者为 admin,转载时请保留本声明及附带文章链接:https://cszj.wang/archives/1024.html

最后编辑于:2020/2/23作者:admin

admin

一个苦逼的程序猿......