Limitar el número de subprocesos que ejecutan un método a la vez

Tenemos una situación en la que queremos limitar el número de solicitudes paralelas que nuestra aplicación puede hacer a su servidor de aplicaciones. Tenemos potencialmente más de 100 subprocesos en segundo plano en ejecución que querrán realizar una llamada al servidor de aplicaciones en algún momento, pero solo querrán 5 subprocesos para poder llamar a SendMessage () (o el método que sea) en cualquier momento. ¿Cuál es la mejor manera de lograr esto?

He considerado usar algún tipo de objeto gatekeeper que bloquea los hilos que entran en el método hasta que el número de hilos que se ejecutan en él ha caído por debajo del umbral. ¿Sería esta una solución razonable o estoy pasando por alto el hecho de que esto podría ser sucio / peligroso?

Estamos desarrollando en C # .NET 3.5.

Gracias,

Steve

Respuestas a la pregunta(4)

Su respuesta a la pregunta