2014-12-03 2 views
0

Мой вопрос следующий. Каков лучший способ, если я использую больше Timers с меньшим количеством заданий или мне нужно определить меньше Timers с большим количеством задач? С какими решениями я могу добиться лучшей производительности?Больше таймеров меньше задач или меньше таймеров с большим количеством задач

Спасибо!

+2

Никто не может дать вам хороший ответ только с этой информацией. Что вы пытаетесь сделать с таймерами? Каковы задачи? – Vajura

+0

Если вы хотите узнать, какой _performs_ лучше, то тест и профиль. Никто не может вам сказать, особенно учитывая отсутствие фактического примера кода, но ваш собственный компьютер может. –

+0

Извините, что вы правы! Поэтому моя основная задача - разработать приложение, которое может непрерывно собирать данные с другого устройства через TCP (поэтому мое приложение является TCP-клиентом), и в то же время я также собираю данные из базы данных. Это нормально, но все записи, которые поступают из базы данных, что мне нужно сканировать в соответствии с некоторыми условиями. Итак, в этом случае я хотел бы знать, какой из них лучше для меня. – Gabor

ответ

1

В вашем конкретном сценарии вам необходимо рассмотреть две вещи:
1. Каждый таймер будет работать в разных потоках.
2. Вам нужно больше потоков по сравнению с задачами или нет?

Лучшие методы могут быть следующими:
1. Используйте Quartz scheduler, так что вам не нужно, чтобы установить частоту каждого таймера специально.
2. Определите задачи как задания и назначьте их с помощью cron-выражений.
3. Используйте TPL для асинхронных операций. TPL позволит автоматически создавать столько потоков, сколько вам нужно (если ваша задача тяжелая). Вы также можете использовать await-async для маршалирования своей задачи в отдельном потоке, не останавливая основной поток.

Смежные вопросы