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

C#代碼運行計時類

編輯:C#入門知識

1     public class OperationTimer : IDisposable
 2     {        
 3         private Int64 m_startTime;
 4         private string m_text;
 5         private Int32 m_CollectionCount;
 6 
 7         public OperationTimer(string text)
 8         {
 9             m_startTime = Stopwatch.GetTimestamp();
10             m_text = text;
11         }
12 
13         public void Dispose()
14         {
15             string text = string.Format("Time={0,6:###.00}", (Stopwatch.GetTimestamp() - m_startTime) / Stopwatch.Frequency);
16             Console.WriteLine(string.Format("{0}:{1}", m_text, text));
17         }
18     }

  試了一下果然很好用。程序很簡單,就是在一個類繼承自IDisposable接口的類的構造函數中記錄下開始時間,在銷毀時計算一下時間差,就可得到相應的執行時間。使用也很巧妙,直接 using (OperationTimer op=new OperationTimer ("Generic ")){...} ,很爽很簡潔的實現了想要的功能。       不過有個小情況,就是本人平時時 asp.net 下寫的代碼,如果每次都拿到控制台中運行,不太方便,如果能改造一下,讓這個類既能在控制台下運行也可以在asp.net 的環境下方便使用就好了。       看了一下這個類的實現原理,由於是在類被銷毀時才計算運行時間差,沒有更多的空間可以去獲取這個時間。似乎只有搞一個委托,讓程序要以在銷毀時執行,把這個時間傳遞需要的地方。呵呵,寫了這麼久的程序,也看了很多次的委托,因為實際中基本沒有用上過,所以對寫法不太熟,正好重溫一下。下面是改造過程。     第一步:將這個類按自己習貫的方式修改一下命名,並為了能簡單調用,增加了一個構造函數,代碼如下: \\代碼     /// <summary>
    /// 計算執行時間的類
    /// 修改:增加了委托方法
    /// 時間:2009-12-8
    /// </summary>

    class CodeTimer : IDisposable
    {
        private Int64&n

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