Существует ли эквивалент класса executorservice java в C#?
Дорогой,
Существует ли эквивалент класса ExecutorService Java в C#?
Следующий код Java создает пул потоков фиксированного размера и циклически перебирает список файлов. В цикле исполнитель выполняет рабочий процесс для обработки файла (рабочий вызывает веб-службу).
ExecutorService executor = Executors.newFixedThreadPool(poolSize); for (int n=0; n < files.length; n++) { final File myFile = files[n]; Runnable worker = new MyWorker(myFile); executor.execute(worker); } try { executor.shutdown(); while (!executor.isTerminated()) { } } finally { executor.shutdownNow(); }
Как я знаю, в этом коде, поскольку размер пула равен (poolSize), он начнет работать над заданиями (poolSize), а другие задания будут находиться в состоянии ожидания, как только одно из заданий будет завершено, другое задание из очереди ожидания будет подхвачено рабочим потоком и выполнено get. Это объясняется ЗДЕСЬ
Мне нужна такая же функциональность в C#
Что я уже пробовал:
Эта статья: Несколько способов ограничения обработки параллельных задач кажется, он объясняет, как это сделать несколькими способами, но это не так прямо и просто, как реализация Java.
Существует ли прямая реализация функциональности ExecutorService на языке C#? или мне следует попробовать более длинные коды, предоставленные предыдущая ссылка?
Я не очень хорошо разбираюсь в резьбе, поэтому любая помощь будет оценена по достоинству. Заранее спасибо
Afzaal Ahmad Zeeshan
Почему вы не можете использовать простые нити? Или используйте пул потоков для управления этими запущенными операциями.
nina4ever
не могли бы вы дать мне ссылку на пример использования ThreadPool фиксированного размера ? и будет ли он автоматически управлять задачами в очереди ?