程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> C#知識點-StopWatch-計時,

C#知識點-StopWatch-計時,

編輯:關於.NET

C#知識點-StopWatch-計時,


小分享:我有幾張阿裡雲優惠券,用券購買或者升級阿裡雲相應產品最多可以優惠五折!領券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03


目錄

  • 簡單介紹
  • 基本用法
  • 結尾

簡單介紹

  Stopwatch 可以測量一個時間間隔的運行時間,也可以測量多個時間間隔的總運行時間。一般用來測量代碼執行所用的時間或者計算性能數據,在優化代碼性能上可以使用Stopwatch來測量時間。

基本用法

  使用的時候需要引用 System.Diagnostics 命名空間。先調用 Start 方法,然後調用 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到運行時間(這兩個屬性的區別是前者得到的是TimeSpan實例,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在運行還是已經停止。每次調用 Start 時開始累計運行時間計數;每次調用 Stop 時結束當前時間間隔測量,並凍結累計運行時間值。 使用 Reset 方法可以清除現有 Stopwatch 實例中的累計運行時間。

  下面的示例演示如何使用 Stopwatch 類來確定應用程序的執行時間:

  
            Stopwatch stopwatch = new Stopwatch(); //第一次計時
 stopwatch.Start(); Console.WriteLine("Stopwatch is running:{0}",stopwatch.IsRunning);//判斷當前Stopwatch的狀態
            System.Threading.Thread.Sleep(1000);//耗時操作
 stopwatch.Stop(); Console.WriteLine("Using Elapsed output runTime:{0}", stopwatch.Elapsed.ToString());//這裡使用時間差來輸出
            Console.WriteLine("Using ElapsedMilliseconds output runTime:{0}", stopwatch.ElapsedMilliseconds);//這裡面使用毫秒來輸出
            Console.WriteLine("==================================================="); //第二次計時
 stopwatch.Start(); System.Threading.Thread.Sleep(1000);//耗時操作
 stopwatch.Stop(); Console.WriteLine("The second RunTime:{0}", stopwatch.ElapsedMilliseconds);//這裡面使用毫秒來輸出
            Console.WriteLine("==================================================="); //第三次計時(這裡使用了Restart)
            stopwatch.Restart();//這裡使用Restart來啟動計時(會把前面的時間清空)
            System.Threading.Thread.Sleep(1000);//耗時操作
 stopwatch.Stop(); Console.WriteLine("Using Restart, so runTime:{0}", stopwatch.ElapsedMilliseconds);//這裡面使用毫秒來輸出
            Console.ReadKey();
View Code

  運行結果:

   

  備注:程序中我 Sleep 了1000ms 但是輸入結果是第一次是1002 第二次是2003 最後是1000,有一定的誤差跟電腦性能和當前CPU的狀態有關系(這裡我是猜測的)。

在實際的項目中,有時候我們無法使用Console.WriteLine() 或者 MessageBox.Show()來得到運行時間,這時候我們就需要把時間寫進一個文本文件中。

  下面的示例演示如何使用 Stopwatch 類來確定應用程序的執行時間並把時間輸出到文本文件中(這裡我為了簡單使用的是 StreamWriter):

  
            const string path = @"D:\StopwatchDemo.txt"; using (StreamWriter streamWriter = new StreamWriter(path, true, Encoding.UTF8)) { streamWriter.WriteLine("Start"); streamWriter.Flush(); Stopwatch stopwatch = Stopwatch.StartNew(); System.Threading.Thread.Sleep(1000);//耗時操作
 stopwatch.Stop(); streamWriter.WriteLine("RunTime:{0}", stopwatch.ElapsedMilliseconds);//以毫秒的形式寫進文件
 streamWriter.Flush(); }
View Code

  運行結果:

  

結尾

    C#中用於計時的操作不只是 Stopwatch 還有其他的如 Timer、TimeSpan 等。我這裡只是用Stopwatch來舉個例子。  

 

  

參考頁面:http://qingqingquege.cnblogs.com/p/5933752.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved