У нас есть ситуация, когда мы хотим ограничить количество запросов paralell, которые наше приложение может сделать к своему серверу приложений. У нас есть потенциально более 100 фоновых потоков, которые в какой-то момент захотят сделать вызов серверу приложений, но хотят, чтобы только 5 потоков могли вызывать SendMessage () (или каким-либо другим способом). Каков наилучший способ достижения этого?
Я рассмотрел использование какого-либо объекта-привратника, который блокирует потоки, входящие в метод, до тех пор, пока число выполняющихся в нем потоков не опустится ниже порогового значения. Будет ли это разумным решением или я упускаю из виду тот факт, что это может быть грязно / опасно?
Мы разрабатываем на C # .NET 3.5.
Спасибо
Steve