亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#如何實現精確到納秒級別的計時器類

發布時間:2021-08-21 13:52:43 來源:億速云 閱讀:167 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關C#如何實現精確到納秒級別的計時器類的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

主要用到了win32里面的QueryPerformanceCounter和QueryPerformanceFrequency兩個函數

文檔鏈接: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>
        /// 開始計時
        /// </summary>
        public void Start()
        {
            Thread.Sleep(0);
            QueryPerformanceCounter(out startTime);
        }

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

        /// <summary>
        ///  返回計時器經過時間(單位:秒)
        /// </summary>
        public double Duration
        {
            get
            {
                return (double)(stopTime - startTime) / (double)freq;
            }
        }
    }

QueryPerformanceFrequency這個函數會檢索性能計數器的頻率。性能計數器的頻率在系統啟動時是固定的,并且在所有處理器上都是一致的。因此,只需在應用初始化時查詢頻率,即可緩存結果。在運行 Windows XP 或更高版本的系統上,該函數將始終成功,因此永遠不會返回零。

下面是測試代碼:

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

感謝各位的閱讀!關于“C#如何實現精確到納秒級別的計時器類”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

合水县| 西充县| 嘉义市| 太湖县| 西林县| 百色市| 甘南县| 隆林| 宾阳县| 东山县| 玉田县| 克东县| 美姑县| 辽阳县| 老河口市| 兴和县| 景洪市| 唐海县| 新干县| 雅安市| 康乐县| 内丘县| 河东区| 铜山县| 雷波县| 古蔺县| 万州区| 建阳市| 嵊州市| 东乌珠穆沁旗| 织金县| 合山市| 厦门市| 南昌市| 虎林市| 绥阳县| 岳西县| 乌拉特前旗| 手游| 芦山县| 中宁县|