Не могу понять как лучше написать логику приложения. У меня условно есть сервер, к которому я хочу подключиться через REST в несколько потоков. Но сервер может поддерживать одновременно только 4 сессии от одной учетки. Создал пятую - одна из первых четырех будет убита. Одни запросы простые и быстрые, (отправил запрос)->(прочитал ответ), другие медленные (отправил запрос на выполнение задачи)-> (следующим запросом прочекал статус задачи) -> (если ок, то отправил запрос и получил ответ). Я подозреваю, что тут (возможно) нужен какой-то диспетчер с пулом подключений и с (возможно) очередью запросов. Но не знаю хорошее ли это будет решение, и можно ли сделать лучше.. Опять же не понятно, хранить пул, и забирать httpClient из него, или хранить число доступных (оставшихся) подключений в переменной, которая будет лочится при доступе..
Очередь запросов можно реализовать через System.Threading.Channels.
Чтобы сессии не отваливались - запусти ровно четыре таски, которые будут разгребать канал.