Установите DegreeofParallelism при использовании AsOrdered c #

1

Я получаю следующую ошибку: "AsOdered может быть вызван только результатом AsParallel, ParallelEnumerable.Range или ParallelEnumerable.Repeat"

При запуске следующего кода

myListofActions.AsParallel().WithDegreeOfParallelism(threadCount)
                                        .AsOrdered().ForAll(x => DoMyTask(x));

этот код работает отлично

myListofActions.AsParallel().AsOrdered().ForAll(x => DoMyTask(x));

Есть ли способ установить WithDegreeOfParallelism в этом случае?

заранее спасибо

Теги:
linq
parallel-processing

1 ответ

3
Лучший ответ

Попробуй это:

myListofActions.AsParallel()
        .AsOrdered()
        .WithDegreeOfParallelism(Math.Min(threadCount, Environment.ProcessorCount))
        .ForAll(DoMyTask);
  • 0
    Есть идеи, почему это работает?
  • 0
    Не совсем, я просто прочитал сообщение об ошибке и переупорядочил звонки соответственно. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню