我目前以 10 秒的间隔使用 System.Threading.Timer。每次定时器触发时,我都会添加一小段代码写入文件,虽然大部分时间它会按时触发,但有时(大概是在购买应用程序的其余部分时)无法触发 30或 40 秒,然后快速连续地一次又一次地开火。
我可以在 .NET 3.5 中使用更可靠的计时器吗?
定时器设置如下
Timer someTimer = new Timer(new TimerCallback(SomeMethod), null, 0, 10000);
...回调是:
private static void SomeMethod(object state)
但是,很难提供比这更多的代码,因为 Timer 通常会正确触发。当它嵌入到一个大型应用程序中(大约 100,000 行左右),多个线程被触发时,左、右和中心,你慢慢开始看到计时器间歇性地触发。我看过几篇帖子暗示 ThreadPool 可能已用尽,所以我目前正在查看这是否是我正在经历的。