Ответ 1
Вы можете посмотреть параллельную библиотеку задач.
С С# 5 это встроено в язык, используя ключевые слова async
и await
.
У вас есть длинный набор дискретных задач: анализ 10-ти тысяч строк из текстового файла, увлажнение объектов, манипулирование и сохранение.
Если бы я реализовал это в Java, я полагаю, что я мог бы добавить новую задачу к Executor для каждой строки в файле или задаче на X строк (например, куски).
Для .Net, который я использую, я не уверен. У меня есть подозрение, что CCR может быть уместным здесь, но я недостаточно знаком с ним, поэтому я задаю этот вопрос.
Может ли CCR работать эквивалентно Java-исполнителям или есть что-то еще?
Спасибо
Вы можете посмотреть параллельную библиотеку задач.
С С# 5 это встроено в язык, используя ключевые слова async
и await
.
Возможно, это связано: Дизайн: Изучена параллельная библиотека задач. См. 10-4 Эпизод 6: Параллельные расширения в качестве быстрого ввода.
Для более старого подхода, основанного на потоках, ThreadPool для объединения.
Если вы собираетесь рассказать кучу людей .NET, что ближе всего к эквивалентам Java Excecutors, может не помешать описать отличительные особенности Java-исполнителей. Человек, который знает ваш ответ, может быть не более знаком с Java, чем с .NET.
Тем не менее, если уже упомянутая параллельная библиотека задач слишком переполнена для ваших нужд или вы не хотите ждать .NET 4.0, возможно, ThreadPool.QueueUserWorkItem() будет тем, что вы ищете.
Класс BackgroundWorker - это, вероятно, то, что вы ищете. Как следует из названия, он позволяет запускать фоновые задачи, автоматически управляемые пулы и события обновления статуса.