C# 中Stopwatch和timer的實現(xiàn)示例
在C#中,Stopwatch 和 Timer(通常指的是 System.Timers.Timer 或 System.Windows.Forms.Timer)是兩個不同的類,它們用于不同的目的:
Stopwatch 類
Stopwatch 類位于 System.Diagnostics 命名空間,主要用于精確測量時間間隔。它非常適合用于性能分析、測量代碼塊的執(zhí)行時間或任何需要高精度計時的場景。Stopwatch 提供了以下功能:
- 以高精度(通常為計時器分辨率,可能是微秒級別)啟動、停止和重置計時器。
- 提供了
Elapsed屬性,返回一個TimeSpan對象,表示經(jīng)過的時間。 - 支持跨平臺使用,因為它不依賴于操作系統(tǒng)的計時器。
示例代碼:
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
// 執(zhí)行一些操作
for (int i = 0; i < 1000000; i++)
{
// 模擬工作負載
}
stopwatch.Stop();
Console.WriteLine("Elapsed time: " + stopwatch.Elapsed);
}
}Timer 類
Timer 類通常指的是 System.Timers.Timer 或 System.Windows.Forms.Timer,它們用于在指定的時間間隔后執(zhí)行代碼。這些計時器主要用于定時任務(wù),如每隔一段時間執(zhí)行一次操作。
System.Timers.Timer
System.Timers.Timer 位于 System.Timers 命名空間,提供了一個服務(wù)器端的定時器,可以用于任何需要定時執(zhí)行任務(wù)的場景,包括Windows服務(wù)。
示例代碼:
using System;
using System.Timers;
class Program
{
static void Main()
{
Timer timer = new Timer(1000); // 設(shè)置定時器間隔為1000毫秒
timer.Elapsed += (sender, e) =>
{
Console.WriteLine("Timer ticked at " + DateTime.Now);
// 執(zhí)行定時任務(wù)
};
timer.AutoReset = true; // 設(shè)置定時器自動重置
timer.Enabled = true; // 啟動定時器
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
timer.Dispose(); // 清理資源
}
}System.Windows.Forms.Timer
System.Windows.Forms.Timer 位于 System.Windows.Forms 命名空間,主要用于Windows Forms應(yīng)用程序中,以指定的時間間隔觸發(fā)事件。
using System;
using System.Windows.Forms;
class Program
{
static void Main()
{
Timer timer = new Timer();
timer.Interval = 1000; // 設(shè)置定時器間隔為1000毫秒
timer.Tick += (sender, e) =>
{
Console.WriteLine("Timer ticked at " + DateTime.Now);
// 執(zhí)行定時任務(wù)
};
timer.Start(); // 啟動定時器
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
timer.Stop(); // 停止定時器
}
}總結(jié)
- Stopwatch:用于測量時間間隔,適合性能分析和精確計時。
- Timer:用于在指定的時間間隔后執(zhí)行代碼,適合定時任務(wù)。
根據(jù)你的具體需求,可以選擇使用 Stopwatch 來測量時間間隔,或使用 Timer 來執(zhí)行定時任務(wù)。
到此這篇關(guān)于C# 中Stopwatch和timer的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)C# Stopwatch timer內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C#中高精度計時器Stopwatch的用法詳解
- C#使用Stopwatch實現(xiàn)計時功能
- C#?Stopwatch實現(xiàn)計算代碼運行時間
- C#中Stopwatch的使用及說明
- C# 中使用Stopwatch計時器實現(xiàn)暫停計時繼續(xù)計時功能
- 如何使用C# Stopwatch 測量微秒級精確度
- .NET/C# 使用Stopwatch測量運行時間
- C#使用StopWatch獲取程序毫秒級執(zhí)行時間的方法
- C#中Forms.Timer、Timers.Timer、Threading.Timer的用法分析
- C#中的Timer和DispatcherTimer使用實例
- C#中的三種定時計時器Timer用法介紹
- C#中三種Timer計時器的詳細用法
- 詳解C#中的定時器Timer類及其垃圾回收機制
- C#使用timer實現(xiàn)的簡單鬧鐘程序
- [C#].NET中幾種Timer的使用實例
相關(guān)文章
Winform實現(xiàn)調(diào)用asp.net數(shù)據(jù)接口實例
這篇文章主要介紹了Winform實現(xiàn)調(diào)用asp.net數(shù)據(jù)接口的方法,以實例的形式講述了數(shù)據(jù)接口及反射辨別響應(yīng)的實現(xiàn)方法,具有一定的參考借鑒價值,需要的朋友可以參考下2014-10-10
c#判斷數(shù)據(jù)庫服務(wù)器是否已經(jīng)啟動的方法
這篇文章主要介紹了使用c#判斷數(shù)據(jù)庫服務(wù)器是否已經(jīng)啟動的方法,大家參考使用吧2014-01-01
C#實現(xiàn)將音頻PCM數(shù)據(jù)封裝成wav文件
這篇文章主要為大家詳細介紹了C#如何實現(xiàn)將音頻PCM數(shù)據(jù)封裝成wav文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2023-10-10
解析C#中委托的同步調(diào)用與異步調(diào)用(實例詳解)
本篇文章是對C#中委托的同步調(diào)用與異步調(diào)用進行了詳細的分析介紹,需要的朋友參考下2013-05-05

