Наш сценарий - сетевой сканер.
Он подключается к набору хостов и периодически сканирует их параллельно с использованием фоновых потоков с низким приоритетом.
Я хочу, чтобы иметь возможность планировать много работы, но только если у вас есть десять или сколько-нибудь количество хостов, проверенных параллельно. Даже если я создаю свои собственные потоки, многие обратные вызовы и другая асинхронная доброта используют ThreadPool, и у меня заканчивается нехватка ресурсов. Я должен посмотреть на MonoTorrent...
Если я использую ThreadPool, могу ли я ограничить мое приложение некоторым числом, которое оставит достаточно для остальной части приложения для плавного перехода?
Есть ли пул потоков, который я могу инициализировать для n долговечных потоков?
[изменить] Никто, кажется, не заметил, что я сделал несколько комментариев по некоторым ответам, поэтому я добавлю пару вещей здесь.
- Темы должны быть отменены как изящно и решительно.
- Темы должны иметь низкий приоритет, оставляя отзывчивый интерфейс.
- Длины продолжаются, но в порядке (минуты), а не в порядке (дни).
Работа для данного целевого хоста в основном:
For each test
Probe target (work is done mostly on the target end of an SSH connection)
Compare probe result to expected result (work is done on engine machine)
Prepare results for host
Может кто-нибудь объяснить, почему использование SmartThreadPool отмечено отрицательной полезностью wit ha?