C#中高精度計時器Stopwatch的用法詳解
引言
偶然發(fā)現(xiàn)C# 的計時器類Stopwatch,他特別適合測量運(yùn)行時間,使用簡單、計時精確。它源于命名空間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類型,我認(rèn)為算精度很高的吧,不需要這么高精度可以做運(yùn)算舍去,或者使用其它的更低精度的屬性,如stopWatch.ElapsedMilliseconds等。
2、復(fù)位reset()和停止Stop()的功能都停止了計時器,但是reset,將時間復(fù)位為0了,這里注意一下就好。
到此這篇關(guān)于C#中高精度計時器Stopwatch的用法詳解的文章就介紹到這了,更多相關(guān)C# Stopwatch內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C#使用Stopwatch實現(xiàn)計時功能
- C#?Stopwatch實現(xiàn)計算代碼運(yùn)行時間
- C#中Stopwatch的使用及說明
- C# 中使用Stopwatch計時器實現(xiàn)暫停計時繼續(xù)計時功能
- 如何使用C# Stopwatch 測量微秒級精確度
- .NET/C# 使用Stopwatch測量運(yùn)行時間
- C#使用StopWatch獲取程序毫秒級執(zhí)行時間的方法
- C#中Forms.Timer、Timers.Timer、Threading.Timer的用法分析
- C#中的Timer和DispatcherTimer使用實例
- C#中的三種定時計時器Timer用法介紹
- C#中三種Timer計時器的詳細(xì)用法
- 詳解C#中的定時器Timer類及其垃圾回收機(jī)制
- C#使用timer實現(xiàn)的簡單鬧鐘程序
- [C#].NET中幾種Timer的使用實例
- C# 中Stopwatch和timer的實現(xiàn)示例
相關(guān)文章
解析Silverlight調(diào)用WCF/Rest異常的解決方法
本篇文章對Silverlight調(diào)用WCF/Rest異常的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C#創(chuàng)建自定義控件及添加自定義屬性和事件使用實例詳解
這篇文章主要給大家介紹了關(guān)于C#創(chuàng)建自定義控件及添加自定義屬性和事件使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
C#下實現(xiàn)創(chuàng)建和刪除目錄的實例代碼
這篇文章主要介紹了C#下實現(xiàn)創(chuàng)建和刪除目錄的方法,功能非常實用,需要的朋友可以參考下2014-08-08
C#創(chuàng)建WCF服務(wù)控制臺應(yīng)用程序詳解
這篇文章主要為大家詳細(xì)介紹了C#創(chuàng)建WCF服務(wù)控制臺應(yīng)用程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07

