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

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

Сообщение Anonymous »


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

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

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

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

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