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