在 .NET 6 中有了新的 Timer,使用 while 等待計時器指定的時間後持續重複。
基本使用範例:
在上面的範例中會執行三次後停止,才會繼續執行後面的程式碼,假設想要讓計時器非同步執行的話可以使用 Task
參考資料:
Microsoft.Learn - PeriodicTimer Class
基本使用範例:
int i = 0;
System.Threading.PeriodicTimer timer = new System.Threading.PeriodicTimer(TimeSpan.FromMilliseconds(1000));
while (await timer.WaitForNextTickAsync())
{
Console.WriteLine(DateTime.Now.ToString("O"));
i++;
if (i == 3) timer.Dispose(); // 停止 timer
}
在上面的範例中會執行三次後停止,才會繼續執行後面的程式碼,假設想要讓計時器非同步執行的話可以使用 Task
int i = 0;
PeriodicTimer timer = new PeriodicTimer(TimeSpan.FromMilliseconds(1000));
async Task Tick()
{
while (await timer.WaitForNextTickAsync())
{
Console.WriteLine(DateTime.Now.ToString("O"));
i++;
if (i == 3) timer.Dispose(); // 停止 timer
}
}
Tick();
Console.WriteLine("會先輸出這行才輸出時間");
參考資料:
Microsoft.Learn - PeriodicTimer Class
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com