Существует ли .Сетевой эквивалент java.util.concurrent.Executor?

StackOverflow https://stackoverflow.com/questions/928018

Вопрос

Иметь длительный набор дискретных задач:разбор 10-ти тысяч строк из текстового файла, преобразование в объекты, манипулирование и сохранение.

Если бы я реализовывал это на Java, я полагаю, я мог бы добавить новую задачу исполнителю для каждой строки в файле или задачи на X строк (т. Е.кусками).

Для .Net, который я использую, я не так уверен.У меня есть подозрение, что, возможно, CCR здесь уместен, но я недостаточно знаком с ним, вот почему я задаю этот вопрос.

Может ли CCR функционировать эквивалентно Java-исполнителям, или есть что-то еще доступное?

Спасибо

Это было полезно?

Решение

Возможно, вы захотите взглянуть на Параллельная библиотека задач.

Начиная с C # 5, это встроено в язык с использованием async и await ключевые слова.

Другие советы

Если вы собираетесь спросить группу людей из .NET, что ближе всего к эквиваленту Java Executors, возможно, не помешает описать отличительные особенности Java Executors.Человек, который знает ваш ответ, возможно, знаком с Java не больше, чем вы с .NET.

Тем не менее, если уже упомянутая библиотека параллельных задач является излишней для ваших нужд, или вы не хотите ждать .NET 4.0, возможно ThreadPool.QueueUserWorkItem() это было бы то, что вы ищете.

Может быть, это как-то связано: Дизайн:Исследована Параллельная библиотека задач.Видишь 10-4 Эпизод 6:Параллельные расширения в качестве краткого вступления.

Для более старого подхода, основанного на потоках, существует Пул потоков для объединения в пул.

Класс BackgroundWorker - это, вероятно, то, что вы ищете.Как следует из названия, он позволяет запускать фоновые задачи с автоматическим управлением объединением в пул и событиями обновления статуса.

Для тех, кто ищет более современное решение (как и я), ознакомьтесь с EventLoopScheduler - планировщик событий класс.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top