0

无论结果如何,我都需要创建一个每 5 秒运行一次的函数,我通过 MSDN 库找到了这个http://msdn.microsoft.com/en-us/library/yz1c7148.aspx,我认为这是我需要的,但我需要更多地了解到期时间和期限参数

据我了解:- DueTime 是在启动计时器之前等待的时间吗?Periodtime 是重复时间的时间吗?

我的问题是我对 msdn 提供的 Timer 的理解是否正确。此外,如果我想设置我的时间每 5 秒运行一次,无论前一个计时器是否完成,我应该设置什么?

4

2 回答 2

1

只需创建一个虚拟计时器每五秒打勾,然后Tick使用BeginInvoke.

于 2013-10-11T11:13:09.530 回答
1

你的理解是绝对正确的。下面的代码应该做你想做的事:

System.Threading.Timer timer = new System.Threading.Timer(Callback, null, 0, 5 * 1000);

但是我应该提到 System.Threading.Timer 不是很准确,每次调用都会有一些累积错误。例如下面的代码

static void Main(string[] args)
{
    System.Threading.Timer timer = new System.Threading.Timer(Callback, null, 0, 1 * 1000);
    Console.ReadLine();
}

static void Callback(object state)
{
    Console.WriteLine(DateTime.Now.ToString("hh:MM:ss:ffff"));
}

在我的计算机上产生以下结果:

03:10:14:8014
03:10:15:8154
03:10:16:8294
03:10:17:8434
03:10:18:8574
03:10:19:8714
03:10:20:8854
03:10:21:8994
03:10:22:9134
03:10:23:9274
03:10:24:9414
03:10:25:9554
03:10:26:9694
03:10:27:9834
03:10:28:9974
03:10:30:0114
03:10:31:0254
于 2013-10-11T11:16:47.160 回答