我想定期检查 C# 中的 60 秒。我可以通过定期检查日期来做到这一点,如下所示
但是,当我使用秒表时,秒表会重置回开头,而不是从上次停止时继续。
using System;
using System.Diagnostics;
using System.Threading;
namespace StopwatchExample
{
class Program
{
static void Main()
{
////Works
//DateTime start = DateTime.Now;
//while (true)
//{
// DateTime current = DateTime.Now;
// var diffInSeconds = (current - start).TotalSeconds;
// if (diffInSeconds > 5)
// {
// Console.WriteLine("5 s done!");
// break;
// }
//}
// Does not work
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
while (true)
{
stopwatch.Stop();
if (stopwatch.Elapsed.Seconds > 5)
{
Console.WriteLine("5 s done!");
break;
}
else
{
stopwatch.Start();
}
}
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
尝试使用计时器(System.Timers)而不是秒表。设置所需的时间间隔并对已过去事件执行必要的操作。
在这里您可以了解更多信息。
例子:
public static void Main()
{
// Create a timer and set a two second interval.
aTimer = new System.Timers.Timer();
aTimer.Interval = 2000; // 2000ms == 2s
// Hook up the Elapsed event for the timer.
aTimer.Elapsed += OnTimedEvent;
// Have the timer fire repeated events (true is the default)
aTimer.AutoReset = true;
// Start the timer
aTimer.Enabled = true;
Console.WriteLine("Press the Enter key to exit the program.");
Console.ReadLine();
}
private static void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e)
{
Console.WriteLine("The interval has been elapsed");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4485 次 |
| 最近记录: |