If you can add the request to in-memory .net queue it should solve your problem. Keep a thread which will monitor and trigger job from the queue. This way you can decide on a number of threads which can run parallelly (one or multiple).
Ashwin Shetty