Вопрос по C# и System.Threading.Timer

программирование windows C++ C# .net

Пишу небольшую программку которая будет периодически проводить определенные действия над элементами списка (с каждым элементом через заданный промежуток времени) и тут вопрос: использование 1000+ экземпляров System.Threading.Timer (с дальнейшим запуском функции с параметром из списка) будет адекватным решением или есть иные способы решения задачи? (соответственно будет запускаться 1000+ потоков насколько я понимаю?)
и еще вопрос: как завершить все таймеры созданные "неявно" (то есть без имени) через new System.Threading.Timer(..........) (в данном случае вызвать метод Dispose() не представляется возможным)?

Примечание:
foreach (string s in Strings)
{
new System.Threading.Timer(SomeFunc, s....)
}
примерно так они будут запускаться при старте программы, и работать должны постоянно...
Ответы:
в System.Threading.Timer - при запуске 1000 таймеров CLR создаст один поток для работы с таймером ядра и несколько рабочих потоков для обработки срабатывания таймеров.
если не держать ссылки на таймеры, они сами завершатся.  для каждого таймера, где время выполнения процедуры события Elapsed больше чем заданный интервал повтора будет создан отдельный поток.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.