Таймер более надежен, чем System.Threading.Timer

В настоящее время я использую System.Threading.Timer на интервал 10 секунд. Я добавляю небольшой фрагмент кода для записи в файл каждый раз, когда срабатывает таймер, и хотя большую часть времени он срабатывает вовремя, иногда (предположительно, когда остальная часть приложения куплена) не срабатывает в течение 30 секунд. или 40 секунд, и срабатывает снова и снова в быстрой последовательности.

Есть ли более надежный таймер, который можно использовать в .NET 3.5?

Таймер настраивается следующим образом

Timer someTimer = new Timer(new TimerCallback(SomeMethod), null, 0, 10000);

...и обратный вызов:

private static void SomeMethod(object state)

Однако трудно предоставить гораздо больше кода, чем это, поскольку Таймер обычно срабатывает правильно. Когда он встроен в массивное приложение (~ 100 000 строк или около того), с несколькими потоками, запускаемыми слева, справа и по центру, вы постепенно начинаете видеть, как таймер срабатывает с перерывами. Я видел несколько сообщений, предполагающих, что ThreadPool может быть исчерпан, поэтому в настоящее время я изучаю, может ли это быть тем, что я испытываю.

7
задан JamesPD 28 May 2012 в 09:34
поделиться