欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中高精度計時器Stopwatch的用法詳解

 更新時間:2024年11月06日 09:10:43   作者:火星papa  
偶然發(fā)現(xiàn)C# 的計時器類Stopwatch,他特別適合測量運行時間,使用簡單、計時精確,下面就跟隨小編一起來學(xué)習一下它的具體應(yīng)用吧

引言

偶然發(fā)現(xiàn)C# 的計時器類Stopwatch,他特別適合測量運行時間,使用簡單、計時精確。它源于命名空間System.Diagnostics,使用時必須using引用。

經(jīng)典舉例

下面用一秒延時的實例來創(chuàng)建一個最簡單的實例。

(1)啟動和停止方法實例

        //按鍵單擊
        private void button_watch_Click(object sender, EventArgs e)
        {            
            Console.WriteLine("action_spent_time:" + watch(action));
        }
        
        //模擬用戶函數(shù)耗時
        private void action()
        {
            Thread.Sleep(1000);
        }
        
        //開始和停止定時器
        public static double watch(Action action)
        {
            //實例化
            Stopwatch stopWatch = new Stopwatch();
            //啟動定時器
            stopWatch.Start();
            //用戶任務(wù)
            action();
            //停止定時器
            stopWatch.Stop();
            //返回計時器時間
            return stopWatch.Elapsed.TotalMilliseconds;
        }

打印顯示

action_spent_time:1014.7956

(2)復(fù)位和重啟方法實例

    //按鍵單擊
    private void button_watch_Click(object sender, EventArgs e)
    {
        watchResetAndRestart(action);
    }
    
    //模擬用戶函數(shù)耗時
    private void action()
    {
        Thread.Sleep(1000);
    }

    //復(fù)位和重啟計時器時器
    public void watchResetAndRestart(Action action)
    {
        //實例化
        Stopwatch stopWatch = new Stopwatch();
        //啟動定時器
        stopWatch.Start();
        //用戶任務(wù)
        action();
        Console.WriteLine("action:"+ stopWatch.Elapsed.TotalMilliseconds);
        //復(fù)位定時器
        stopWatch.Reset();
        Console.WriteLine("action reset:" + stopWatch.Elapsed.TotalMilliseconds);
        //重啟定時器
        stopWatch.Restart();
        //用戶任務(wù)
        action();
        Console.WriteLine("action Restart:" + stopWatch.Elapsed.TotalMilliseconds);
        //復(fù)位定時器
        stopWatch.Reset();
    }
}

打印顯示:

action:1000.8485
action reset:0
action Restart:1009.2571

小結(jié)

是不是覺得很簡單。小伙伴們可以用起來。

1、實例中可以看到精度可以得到0.1微秒使用double類型,我認為算精度很高的吧,不需要這么高精度可以做運算舍去,或者使用其它的更低精度的屬性,如stopWatch.ElapsedMilliseconds等。

2、復(fù)位reset()和停止Stop()的功能都停止了計時器,但是reset,將時間復(fù)位為0了,這里注意一下就好。

到此這篇關(guān)于C#中高精度計時器Stopwatch的用法詳解的文章就介紹到這了,更多相關(guān)C# Stopwatch內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#/VB.NET實現(xiàn)在Word文檔中添加頁眉和頁腳

    C#/VB.NET實現(xiàn)在Word文檔中添加頁眉和頁腳

    頁眉位于文檔中每個頁面的頂部區(qū)域,常用于顯示文檔的附加信息;頁腳位于文檔中每個頁面的底部的區(qū)域,常用于顯示文檔的附加信息。今天這篇文章就將為大家展示如何以編程的方式在在?Word?文檔中添加頁眉和頁腳
    2023-03-03
  • C#計算器編寫代碼

    C#計算器編寫代碼

    這篇文章主要為大家分享了C#計算器編寫代碼,供大家參考,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • C#中foreach循環(huán)對比for循環(huán)的優(yōu)勢和劣勢

    C#中foreach循環(huán)對比for循環(huán)的優(yōu)勢和劣勢

    循環(huán)語句是編程的基本語句,在C#中除了沿用C語言的循環(huán)語句外,還提供了foreach語句來實現(xiàn)循環(huán),下面這篇文章主要給大家介紹了關(guān)于C#中foreach循環(huán)對比for循環(huán)的優(yōu)勢和劣勢,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • C#中將字符串轉(zhuǎn)換為整型的三種解決方法總結(jié)

    C#中將字符串轉(zhuǎn)換為整型的三種解決方法總結(jié)

    本篇文章是對C#中將字符串轉(zhuǎn)換為整型的三種解決方法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • C#?委托與?Lambda?表達式轉(zhuǎn)換機制及弱事件模式下的生命周期詳解

    C#?委托與?Lambda?表達式轉(zhuǎn)換機制及弱事件模式下的生命周期詳解

    本文介紹了C#委托和Lambda表達式的工作原理,包括委托的內(nèi)部結(jié)構(gòu)、Lambda表達式的轉(zhuǎn)換機制以及弱事件模式下的生命周期管理,感興趣的朋友一起看看吧
    2025-02-02
  • C#使用foreach語句搜索數(shù)組元素的方法

    C#使用foreach語句搜索數(shù)組元素的方法

    這篇文章主要介紹了C#使用foreach語句搜索數(shù)組元素的方法,涉及C#使用foreach語句遍歷數(shù)組實現(xiàn)搜索功能的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • C#一個方法返回多個值示例

    C#一個方法返回多個值示例

    這篇文章主要介紹了C#一個方法返回多個值示例,需要的朋友可以參考下
    2014-02-02
  • c#反射機制學(xué)習和利用反射獲取類型信息

    c#反射機制學(xué)習和利用反射獲取類型信息

    反射(Reflection)是.NET中的重要機制,通過放射,可以在運行時獲得.NET中每一個類型(包括類、結(jié)構(gòu)、接口和枚舉等)的成員,包括方法、屬性、事件,以及構(gòu)造函數(shù)等,還可以獲得每個成員的名稱、限定符和參數(shù)等,有了反射,即可對每一個類型了如指掌
    2014-01-01
  • C#實現(xiàn)回文檢測的方法

    C#實現(xiàn)回文檢測的方法

    這篇文章主要介紹了C#實現(xiàn)回文檢測的方法,實例分析了C#使用棧進行回文檢測的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • 深入多線程之:深入生產(chǎn)者、消費者隊列分析

    深入多線程之:深入生產(chǎn)者、消費者隊列分析

    本篇文章是對生產(chǎn)者與消費者隊列進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05

最新評論