C# 在C中创建具有持续时间和间隔触发器的计时器类

C# 在C中创建具有持续时间和间隔触发器的计时器类,c#,time,timer,C#,Time,Timer,是否有一个类允许您设置一个对象,该对象将在X秒或毫秒内保持活动状态,并允许您以Y秒或毫秒的间隔触发某些内容 我知道有System.Timers.Timer,但这似乎只是用于间隔,而不是使间隔成为可选的。我目前正在自己构建这个功能,除了间隔的东西,所有的东西都在工作。对于非常长的持续时间或非常小的间隔,间隔执行时间有时比它们应该执行的时间少1到2倍,我知道这是因为每次间隔执行时都会丢失一些记号,因此执行间隔越多,丢失的记号就越多 我只是想确保.NET3.5框架中目前没有任何具有这种功能的东西,然后

是否有一个类允许您设置一个对象,该对象将在X秒或毫秒内保持活动状态,并允许您以Y秒或毫秒的间隔触发某些内容

我知道有System.Timers.Timer,但这似乎只是用于间隔,而不是使间隔成为可选的。我目前正在自己构建这个功能,除了间隔的东西,所有的东西都在工作。对于非常长的持续时间或非常小的间隔,间隔执行时间有时比它们应该执行的时间少1到2倍,我知道这是因为每次间隔执行时都会丢失一些记号,因此执行间隔越多,丢失的记号就越多


我只是想确保.NET3.5框架中目前没有任何具有这种功能的东西,然后再尝试尝试一些想法,以使间隔始终执行正确的次数

最好的方法是检查OnTimedEventobject源的ElapsedEventArgs e事件处理程序的ElapsedEventArgs中的时间,并计算启动时间与激发时间或上次激发时间之间的差值。然后,您可以在逻辑中考虑计时器触发的确切时间间隔。我不认为你能让计时器100%精确到毫秒,但是如果你真的需要精确的计时,你可以允许它。

这门课呢?如果不需要使用间隔触发计时器,可以使用Timeout.Infinite。

您可能想试试。它有一个丰富的API,用于调度任何类型的作业/事件,无论您需要什么时间间隔、重复和缺火