我使用此方法每 60 秒调用另一个方法:
Timer updateTimer = new Timer(testt, null,
new TimeSpan(0, 0, 0, 0, 1), new TimeSpan(0, 0, 60));
延迟1毫秒后可以只调用一次这个方法吗?
我使用此方法每 60 秒调用另一个方法:
Timer updateTimer = new Timer(testt, null,
new TimeSpan(0, 0, 0, 0, 1), new TimeSpan(0, 0, 60));
延迟1毫秒后可以只调用一次这个方法吗?
假设这是 a System.Threading.Timer
,来自构造函数的最终参数的文档:
period
调用回调引用的方法之间的时间间隔。指定负一 (-1) 毫秒以禁用周期性信号。
所以:
Timer updateTimer = new Timer(testt, null,
TimeSpan.FromMilliseconds(1), // Delay by 1ms
TimeSpan.FromMilliseconds(-1)); // Never repeat
1ms的延迟真的有用吗?为什么不立即执行呢?如果您真的只是想在线程池线程上执行它,那么有更好的方法来实现它。
System.Timers.Timer aTimer = new System.Timers.Timer(10000);
// Hook up the Elapsed event for the timer.
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
// Set the Interval to 60 seconds (60000 milliseconds).
aTimer.Interval = 60000;
//for enabling for disabling the timer.
aTimer.Enabled = true;
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
//disable the timer
aTimer.Enabled = false;
Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
}