国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

C#知識(shí)點(diǎn)-StopWatch-計(jì)時(shí)

2019-11-17 02:40:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

C#知識(shí)點(diǎn)-StopWatch-計(jì)時(shí)

目錄

  • 簡(jiǎn)單介紹
  • 基本用法
  • 結(jié)尾

簡(jiǎn)單介紹

  Stopwatch 可以測(cè)量一個(gè)時(shí)間間隔的運(yùn)行時(shí)間,也可以測(cè)量多個(gè)時(shí)間間隔的總運(yùn)行時(shí)間。一般用來(lái)測(cè)量代碼執(zhí)行所用的時(shí)間或者計(jì)算性能數(shù)據(jù),在優(yōu)化代碼性能上可以使用Stopwatch來(lái)測(cè)量時(shí)間。

基本用法

  使用的時(shí)候需要引用System.Diagnostics命名空間。先調(diào)用 Start 方法,然后調(diào)用 Stop 方法,最后使用 Elapsed 屬性或者使用ElapsedMilliseconds屬性得到運(yùn)行時(shí)間(這兩個(gè)屬性的區(qū)別是前者得到的是TimeSpan實(shí)例,后者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當(dāng)前狀態(tài)是正在運(yùn)行還是已經(jīng)停止。每次調(diào)用 Start 時(shí)開(kāi)始累計(jì)運(yùn)行時(shí)間計(jì)數(shù);每次調(diào)用 Stop 時(shí)結(jié)束當(dāng)前時(shí)間間隔測(cè)量,并凍結(jié)累計(jì)運(yùn)行時(shí)間值。 使用 Reset 方法可以清除現(xiàn)有 Stopwatch 實(shí)例中的累計(jì)運(yùn)行時(shí)間。

  下面的示例演示如何使用Stopwatch類來(lái)確定應(yīng)用程序的執(zhí)行時(shí)間:

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

  運(yùn)行結(jié)果:

   

  備注:程序中我Sleep 了1000ms 但是輸入結(jié)果是第一次是1002 第二次是2003 最后是1000,有一定的誤差跟電腦性能和當(dāng)前CPU的狀態(tài)有關(guān)系(這里我是猜測(cè)的)。

在實(shí)際的項(xiàng)目中,有時(shí)候我們無(wú)法使用Console.WriteLine() 或者 MessageBox.Show()來(lái)得到運(yùn)行時(shí)間,這時(shí)候我們就需要把時(shí)間寫進(jìn)一個(gè)文本文件中。

  下面的示例演示如何使用Stopwatch類來(lái)確定應(yīng)用程序的執(zhí)行時(shí)間并把時(shí)間輸出到文本文件中(這里我為了簡(jiǎn)單使用的是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);//耗時(shí)操作                stopwatch.Stop();                streamWriter.WriteLine("RunTime:{0}", stopwatch.ElapsedMilliseconds);//以毫秒的形式寫進(jìn)文件                streamWriter.Flush();            }
View Code

  運(yùn)行結(jié)果:

  

結(jié)尾

    C#中用于計(jì)時(shí)的操作不只是 Stopwatch 還有其他的如 Timer、TimeSpan 等。我這里只是用Stopwatch來(lái)舉個(gè)例子。  

  


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 北安市| 德令哈市| 噶尔县| 武隆县| 乡宁县| 莱芜市| 新巴尔虎左旗| 商都县| 基隆市| 彩票| 威宁| 陆河县| 宁晋县| 海淀区| 陈巴尔虎旗| 阿勒泰市| 南郑县| 英吉沙县| 称多县| 徐州市| 永清县| 南京市| 施秉县| 文水县| 建瓯市| 襄垣县| 兴和县| 闵行区| 浠水县| 伊宁市| 商洛市| 海南省| 峨眉山市| 青海省| 牟定县| 广饶县| 米易县| 丰台区| 田东县| 甘洛县| 甘洛县|