C# 计时器.更改方法

本文关键字:方法 计时器 | 更新日期: 2023-09-27 18:34:50

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

据我了解:- 到期时间 是启动计时器之前等待的时间吗? 周期时间是重复时间的时间吗?

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

C# 计时器.更改方法

只需创建一个虚拟计时器每五秒滴答一次,然后使用 BeginInvoke 在事件Tick启动函数。

你的理解是绝对正确的。以下代码应执行所需的操作:

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