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

C#中高精度計(jì)時(shí)器Stopwatch的用法詳解

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

引言

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

經(jīng)典舉例

下面用一秒延時(shí)的實(shí)例來(lái)創(chuàng)建一個(gè)最簡(jiǎn)單的實(shí)例。

(1)啟動(dòng)和停止方法實(shí)例

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

打印顯示

action_spent_time:1014.7956

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

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

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

打印顯示:

action:1000.8485
action reset:0
action Restart:1009.2571

小結(jié)

是不是覺(jué)得很簡(jiǎn)單。小伙伴們可以用起來(lái)。

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

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

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

相關(guān)文章

最新評(píng)論