我已经通过msdn库了解这个计时器类更改函数,
http://msdn.microsoft.com/en-us/library/yz1c7148.aspx
public bool Change( int dueTime, int期间 )
但是我不明白什么是期间参数。
我也尝试创建一个样本来查看它的用途,但似乎无所事事
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参数是什么?
谢谢
答案 0 :(得分:4)
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));
希望这有帮助
答案 1 :(得分:0)
DueTime =首次部署之前的时间
期间=下次部署的适当时间之后的时间量,以及每次后续部署的时间量。