最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#精確到納秒級(jí)別的計(jì)時(shí)器類(lèi)實(shí)現(xiàn)代碼

 更新時(shí)間:2021年08月21日 11:03:21   作者:晨晞gg  
這篇文章主要介紹了C#精確到納秒級(jí)別的計(jì)時(shí)器類(lèi),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

主要用到了win32里面的QueryPerformanceCounter和QueryPerformanceFrequency兩個(gè)函數(shù)

文檔鏈接:https://docs.microsoft.com/zh-cn/windows/win32/api/profileapi/nf-profileapi-queryperformancecounter

class NanoSecondTimer
    {

        [DllImport("Kernel32.dll")]
        private static extern bool QueryPerformanceCounter(out long lpPerformanceCount);

        [DllImport("Kernel32.dll")]
        private static extern bool QueryPerformanceFrequency(out long lpFrequency);

        private long startTime, stopTime;
        private long freq;
        public NanoSecondTimer()
        {
            startTime = 0;
            stopTime = 0;
            if (QueryPerformanceFrequency(out freq) == false)
            {
                throw new Win32Exception();
            }
        }

        /// <summary>
        /// 開(kāi)始計(jì)時(shí)
        /// </summary>
        public void Start()
        {
            Thread.Sleep(0);
            QueryPerformanceCounter(out startTime);
        }

        /// <summary>
        /// 停止計(jì)時(shí)
        /// </summary>
        public void Stop()
        {
            QueryPerformanceCounter(out stopTime);
        }

        /// <summary>
        ///  返回計(jì)時(shí)器經(jīng)過(guò)時(shí)間(單位:秒)
        /// </summary>
        public double Duration
        {
            get
            {
                return (double)(stopTime - startTime) / (double)freq;
            }
        }
    }

QueryPerformanceFrequency這個(gè)函數(shù)會(huì)檢索性能計(jì)數(shù)器的頻率。性能計(jì)數(shù)器的頻率在系統(tǒng)啟動(dòng)時(shí)是固定的,并且在所有處理器上都是一致的。因此,只需在應(yīng)用初始化時(shí)查詢頻率,即可緩存結(jié)果。在運(yùn)行 Windows XP 或更高版本的系統(tǒng)上,該函數(shù)將始終成功,因此永遠(yuǎn)不會(huì)返回零。

下面是測(cè)試代碼:

NanoSecondTimer nanoSecondTimer = new NanoSecondTimer();
            nanoSecondTimer.Start();
            for (int i = 0; i < 100000; i++)
            {
                i++;
            }
            nanoSecondTimer.Stop();
            double time = nanoSecondTimer.Duration;

到此這篇關(guān)于C#精確到納秒級(jí)別的計(jì)時(shí)器類(lèi)的文章就介紹到這了,更多相關(guān)C#計(jì)時(shí)器類(lèi)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#編寫(xiě)ActiveX網(wǎng)頁(yè)截圖控件

    C#編寫(xiě)ActiveX網(wǎng)頁(yè)截圖控件

    這篇文章主要介紹了C#編寫(xiě)ActiveX網(wǎng)頁(yè)截圖控件,作為學(xué)習(xí)C#編寫(xiě)ActiveX的一個(gè)簡(jiǎn)單入門(mén)教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 淺談C#中的for循環(huán)與foreach循環(huán)

    淺談C#中的for循環(huán)與foreach循環(huán)

    本篇文章主要介紹了C#中的for循環(huán)與foreach循環(huán)的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-05-05
  • WinForm生成驗(yàn)證碼圖片的方法

    WinForm生成驗(yàn)證碼圖片的方法

    這篇文章主要介紹了WinForm生成驗(yàn)證碼圖片的方法,涉及WinForm字符串及圖形操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • C#串口通信工具類(lèi)的封裝

    C#串口通信工具類(lèi)的封裝

    這篇文章主要為大家詳細(xì)介紹了C#串口通信工具類(lèi)封裝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 淺談C#中對(duì)引用類(lèi)型的誤解

    淺談C#中對(duì)引用類(lèi)型的誤解

    這篇文章主要介紹了淺談C#中對(duì)引用類(lèi)型的誤解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Winform圓形環(huán)繞的Loading動(dòng)畫(huà)實(shí)現(xiàn)代碼

    Winform圓形環(huán)繞的Loading動(dòng)畫(huà)實(shí)現(xiàn)代碼

    這篇文章主要介紹了Winform圓形環(huán)繞的Loading動(dòng)畫(huà)實(shí)現(xiàn)代碼,有需要的朋友可以參考一下
    2014-01-01
  • 基于C#設(shè)計(jì)一個(gè)雙色球選號(hào)工具

    基于C#設(shè)計(jì)一個(gè)雙色球選號(hào)工具

    這篇文章主要為大家詳細(xì)介紹了如何利用C#設(shè)計(jì)實(shí)現(xiàn)一個(gè)雙色球選號(hào)工具,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • C#中緩存System.Web.Caching用法總結(jié)

    C#中緩存System.Web.Caching用法總結(jié)

    本文詳細(xì)講解了C#中緩存System.Web.Caching的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#操作SQLite數(shù)據(jù)庫(kù)方法小結(jié)(創(chuàng)建,連接,插入,查詢,刪除等)

    C#操作SQLite數(shù)據(jù)庫(kù)方法小結(jié)(創(chuàng)建,連接,插入,查詢,刪除等)

    這篇文章主要介紹了C#操作SQLite數(shù)據(jù)庫(kù)方法,包括針對(duì)SQLite數(shù)據(jù)庫(kù)的創(chuàng)建,連接,插入,查詢,刪除等操作,并提供了一個(gè)SQLite的封裝類(lèi),需要的朋友可以參考下
    2016-07-07
  • Dictionary擴(kuò)展基礎(chǔ)類(lèi)向字典中添加鍵和值

    Dictionary擴(kuò)展基礎(chǔ)類(lèi)向字典中添加鍵和值

    Dictionary<TKey, TValue> 類(lèi)是常用的一個(gè)基礎(chǔ)類(lèi),但用起來(lái)有時(shí)確不是很方便。本文逐一討論,并使用擴(kuò)展方法解決
    2013-11-11

最新評(píng)論

渝北区| 论坛| 新竹市| 荥阳市| 安仁县| 冷水江市| 库尔勒市| 西乌| 石家庄市| 汾阳市| 富阳市| 桓台县| 微山县| 枞阳县| 孝感市| 无锡市| 高雄县| 吉首市| 建德市| 墨江| 子洲县| 化州市| 孙吴县| 康乐县| 南安市| 崇信县| 兴国县| 涞源县| 思南县| 浮山县| 名山县| 循化| 荣昌县| 怀来县| 公安县| 康马县| 台州市| 沙坪坝区| 娄烦县| 嘉善县| 茶陵县|