c#计时器类更改(截止日期,期间)

时间:2012-05-07 11:35:17

标签: c#

我已经通过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参数是什么?

谢谢

2 个答案:

答案 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 =首次部署之前的时间

期间=下次部署的适当时间之后的时间量,以及每次后续部署的时间量。