Задался целью создания много поточного сетевого сканера, сканирует заданные диапазоны IP, определяет активные хосты, по возможности запрашивает их имена и начинает их мониторить (постоянно отправлять запросы ping). Позволяет следить за состоянием сети и узнавать о сбоях еще до начала звонков клиентов. Кроме того выявляются новые не званые "гости" в сети. В процессе разработки столкнулся с проблемами производительности. При выборе больших диапазонов IP программа потребляет слишком много ресурсов. Писалась на C#, Каждый хост идет в отдельный поток. Думаю проблема в этом. Что лучше несколько потоков между которыми распределена вся нагрузка или все же моя реализация?