Хорошо, я знаю объект System.Timer, выполняемый в пуле потоков, а не в потоке пользовательского интерфейса. Я также знаю, что System.Timer является потокобезопасным.
Скажем, у меня есть коллекция объектов System.Timer. Я могу запустить все из них, и (если я не ошибаюсь) они действительно будут выполняться в пуле потоков.
Скажем, вместо этого я создаю коллекцию потоков, каждый из которых выполняет объект System.Timer для периодического выполнения своих действий.
Будет ли выполнение этих «поточных» таймеров происходить в системном пуле потоков? Или их выполнение будет происходить внутри самой нити?
Другими словами: я обманываю себя, запуская таймеры внутри нескольких потоков, поскольку их выполнение будет происходить в одном и том же пуле потоков и, следовательно, будет выполняться с тем же приоритетом?
Или есть ли реальное преимущество (скорость или иное), если таймеры выполняются внутри отдельных потоков (независимо от обработки исключений и других опасностей потоков)?
Третий вариант - иметь коллекцию таймеров, и их событие Elapsed запускает поток для процесса. этот будет предпочтительным вариантом?
Кроме того, можно ли изменить приоритет пула потоков? Или лучше запустить процесс в отдельном потоке, а затем настроить приоритет для этого потока .
Спасибо!