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