В настоящее время я использую 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 может быть исчерпан, поэтому в настоящее время я просматриваю, может ли это быть тем, что я испытываю.