有没有一种在C#中执行定期任务/线程的方法,而不使用线程池(这是我主要的要求之一)。
预期场景如下:
1. 周期性线程阻塞/等待计时器事件(来自系统)。 2. 系统在计时器到期时通知线程。 3. 线程执行一些代码。 4. 线程阻塞/等待来自系统的下一个计时器事件(请注意,如果线程错过了一个或多个计时器事件,这没关系)。
最接近这一点的是 System.Forms.Timer,但问题在于它的精度仅限于55毫秒,这对我来说不够。
System.Timers.Timer似乎可以通过SynchronizingObject属性处理此问题。然而,我不确定如何根据上述情况实现ISynchronizeInvoke。我找到的所有用于实现ISynchronizeInvoke的代码示例似乎都太复杂,无法处理如此简单的情况。
有没有一种简单实现此功能的方法,如上述场景所示(不使用线程池),并比System.Forms.Timer更准确?
预期场景如下:
1. 周期性线程阻塞/等待计时器事件(来自系统)。 2. 系统在计时器到期时通知线程。 3. 线程执行一些代码。 4. 线程阻塞/等待来自系统的下一个计时器事件(请注意,如果线程错过了一个或多个计时器事件,这没关系)。
最接近这一点的是 System.Forms.Timer,但问题在于它的精度仅限于55毫秒,这对我来说不够。
System.Timers.Timer似乎可以通过SynchronizingObject属性处理此问题。然而,我不确定如何根据上述情况实现ISynchronizeInvoke。我找到的所有用于实现ISynchronizeInvoke的代码示例似乎都太复杂,无法处理如此简单的情况。
有没有一种简单实现此功能的方法,如上述场景所示(不使用线程池),并比System.Forms.Timer更准确?