Веб-приложение C#, контроль количества доступных потоков в заданиях Hangifre, каждый из которых выполняет Parallel.ForEaC#

Место общения программистов C#
Ответить
Anonymous
 Веб-приложение C#, контроль количества доступных потоков в заданиях Hangifre, каждый из которых выполняет Parallel.ForEa

Сообщение Anonymous »


Я создаю приложение, которое будет планировать некоторые задания с помощью Hangfire. Время от времени они будут выполняться одновременно. Каждое задание имеет количество «конфигураций» для обработки. Чтобы ускорить работу, он выполняется с помощью Parallel.ForEachAsync. Я ищу способ контролировать количество потоков/задач, которые могут использоваться этими вызовами ForEachAsync.

Я иду в неправильном направлении, поскольку ParallelOptions указываются один раз и не могут быть изменены, если количество доступных потоков изменится. Я тоже думал о семафоре, но не могу понять.

Может быть, зарегистрирована служба Singleton, которая будет хранить информацию о количестве доступных потоков, а затем каждое задание Hangfire будет использовать ее, чтобы решить, сколько «конфигураций» оно может выполнять параллельно.

Мне нужен совет по этому поводу, примеры кода, конечно, приветствуются.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»