我有简单的计时器:
private System.Timers.Timer _timer;
public Ctor()
{
_timer = new System.Timers.Timer(timeout);
_timer.Elapsed += Timer_Elapsed;
_timer.Start();
}
如何在Elapsed
时间到期后使计时器上升timeout
事件?
当然,这是第一次过去的事件。
答案 0 :(得分:2)
Timer完全符合您的要求,它会在指定的间隔过去后引发事件。如果您不希望它再次发生(仅运行一次),请设置AutoResetProperty
:
public Ctor()
{
_timer = new System.Timers.Timer(timeout);
_timer.AutoReset = false;
_timer.Elapsed += Timer_Elapsed;
_timer.Start();
}
private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
// your code here runs after the timeout elapsed
}
答案 1 :(得分:0)
我认为你要求在最初的延迟后启动计时器?如果是这种情况,那么请考虑使用System.Threading.Timers.Timer
,如下所示:
int initialDelay = 5000; // five seconds
int timerPeriod = 1000; // one second
var timer = new Timer(_ => MethodToCallWhenExpired(), null, initialDelay, timerPeriod);
或者您可以使用Timeout.Infinite
然后调用Change()
方法在创建后更改Timer行为。
很抱歉,如果那不是你要问的那个! :)