Привет! Мне нужно отправить WMI-запрос каждой системе в домене (возможно, тысячам), и WMI-запросы возвращаются очень долго. Поэтому я рассматриваю лучшие способы отправки нескольких запросов с использованием нескольких потоков, чтобы процесс мог выполняться в фоновом режиме, а вызовы могли перекрываться.
Мне нравятся функции, которые предлагает BackgroundWorker, и я читаю ЗДЕСЬ , что он использует ThreadPool под крышками. Я действительно не понимаю, как бы я использовал это для своих целей. Кажется, что если бы мне пришлось отправить 1000 запросов, я мог бы сделать цикл, в котором я вызываю новый BG-работник для каждого запроса, и пул потоков будет использовать до 25 (?) Потоков одновременно, а остальные 975 запросов в очереди. Это то, что происходит?
Если это правильно, я представляю, что процесс постановки в очередь до 1000 запросов сам по себе замораживает пользовательский интерфейс, поэтому должен ли сам цикл очередей выполняться в другом работнике BG?
Есть ли проблема с вызовом других рабочих потоков из рабочего потока?
Должен ли я создавать, скажем, только 20 рабочих потоков BG и вручную запускать другие, когда один из них завершается?
Я правильно понимаю? Любой совет будет высоко ценится!