C#中高精度計(jì)時(shí)器Stopwatch的用法詳解
引言
偶然發(fā)現(xiàn)C# 的計(jì)時(shí)器類Stopwatch,他特別適合測(cè)量運(yùn)行時(shí)間,使用簡(jiǎn)單、計(jì)時(shí)精確。它源于命名空間System.Diagnostics,使用時(shí)必須using引用。
經(jīng)典舉例
下面用一秒延時(shí)的實(shí)例來創(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));
}
//模擬用戶函數(shù)耗時(shí)
private void action()
{
Thread.Sleep(1000);
}
//開始和停止定時(shí)器
public static double watch(Action action)
{
//實(shí)例化
Stopwatch stopWatch = new Stopwatch();
//啟動(dòng)定時(shí)器
stopWatch.Start();
//用戶任務(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);
}
//模擬用戶函數(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();
//用戶任務(wù)
action();
Console.WriteLine("action:"+ stopWatch.Elapsed.TotalMilliseconds);
//復(fù)位定時(shí)器
stopWatch.Reset();
Console.WriteLine("action reset:" + stopWatch.Elapsed.TotalMilliseconds);
//重啟定時(shí)器
stopWatch.Restart();
//用戶任務(wù)
action();
Console.WriteLine("action Restart:" + stopWatch.Elapsed.TotalMilliseconds);
//復(fù)位定時(shí)器
stopWatch.Reset();
}
}
打印顯示:
action:1000.8485
action reset:0
action Restart:1009.2571
小結(jié)
是不是覺得很簡(jiǎn)單。小伙伴們可以用起來。
1、實(shí)例中可以看到精度可以得到0.1微秒使用double類型,我認(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)文章希望大家以后多多支持腳本之家!
- C#使用Stopwatch實(shí)現(xiàn)計(jì)時(shí)功能
- C#?Stopwatch實(shí)現(xiàn)計(jì)算代碼運(yùn)行時(shí)間
- C#中Stopwatch的使用及說明
- C# 中使用Stopwatch計(jì)時(shí)器實(shí)現(xiàn)暫停計(jì)時(shí)繼續(xù)計(jì)時(shí)功能
- 如何使用C# Stopwatch 測(cè)量微秒級(jí)精確度
- .NET/C# 使用Stopwatch測(cè)量運(yùn)行時(shí)間
- C#使用StopWatch獲取程序毫秒級(jí)執(zhí)行時(shí)間的方法
- C#中Forms.Timer、Timers.Timer、Threading.Timer的用法分析
- C#中的Timer和DispatcherTimer使用實(shí)例
- C#中的三種定時(shí)計(jì)時(shí)器Timer用法介紹
- C#中三種Timer計(jì)時(shí)器的詳細(xì)用法
- 詳解C#中的定時(shí)器Timer類及其垃圾回收機(jī)制
- C#使用timer實(shí)現(xiàn)的簡(jiǎn)單鬧鐘程序
- [C#].NET中幾種Timer的使用實(shí)例
- C# 中Stopwatch和timer的實(shí)現(xiàn)示例
相關(guān)文章
C#操作Word模擬解析HTML標(biāo)記設(shè)置背景色詳解
這篇文章提出了一種通過HTML標(biāo)記化方式在Word文檔中設(shè)置文字格式及背景色的解決方案,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2026-01-01
DevExpress之ChartControl創(chuàng)建Drill-Down樣式的Title實(shí)例
這篇文章主要介紹了DevExpress之ChartControl創(chuàng)建Drill-Down樣式的Title實(shí)現(xiàn)方法,以實(shí)例形式講述了創(chuàng)建Drill-Down樣式的Title原理與實(shí)現(xiàn)過程,需要的朋友可以參考下2014-10-10
c#實(shí)現(xiàn)winform屏幕截圖并保存的示例
這篇文章主要介紹了c#實(shí)現(xiàn)winform屏幕截圖并保存的示例,需要的朋友可以參考下2014-02-02
C#實(shí)現(xiàn)注冊(cè)碼注冊(cè)機(jī)制效果詳解
這篇文章主要為大家詳細(xì)介紹了C#如何實(shí)現(xiàn)注冊(cè)碼注冊(cè)機(jī)制效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下2023-01-01

