[英]C# Timer class Change(dueDate, period)
我已经浏览了有关此计时器类更改功能的 msdn 库,
http://msdn.microsoft.com/en-us/library/yz1c7148.aspx
public bool Change( int dueTime, int period )
但我不明白周期参数是什么。
我也尝试创建一个示例来查看它的用途,但似乎它什么也没做
Timer JobTime = new Timer(timer =>
{
try
{
WriteLog(DateTime.Now.ToString(), "TestJobTimer"); //Save invoke time to file
((Timer)timer).Change(TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(20));
}
catch(Exception ex)
{
string stop = ex.Message;
}
});
JobTime.Change(0, 0);
基于这个示例,我得到的是计时器将每 5 秒重复一次,那么 PERIOD 参数是什么?
谢谢
dueTime显示何时触发第一个事件,
在那之后多久
在您的情况下,第一个事件将在 5 秒后触发,然后每 20 秒触发一次
编辑
至于你用 0,0 调用你的计时器更改,它会不耐烦地开始并且在计时器滴答时调用你将它更改为每 20 秒 5 秒后触发,这就是事件每 5 秒触发一次的原因
如果您想在 5 秒后每 20 秒触发一次事件,请从处理程序中删除计时器更改,并像这样只启动一次计时器
Timer JobTime = new Timer(timer =>
{
try
{
Console.WriteLine(DateTime.Now.ToString(), "TestJobTimer"); //Save invoke time to file
}
catch (Exception ex)
{
string stop = ex.Message;
}
});
JobTime.Change(TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(20));
希望这可以帮助
DueTime = 距离首次部署的时间
周期 = 下一次部署的到期时间之后的时间量,以及每次后续部署的时间量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.