title: Parallel(Async) tasks using Web Service to avoid Threads
body: <p>I have a task that I perform in parallel; for instance printing user selected documents async'ly. One way may be to use a worker thread. But thinking of the scenario where thousands of requests pouring in onto the web server, and application is spawning one more thread for printing sounds horrible. And what if all of the concurrent users start printing?</p>
  
  <p>So is the reason I want to avoid worker threads. </p>
  
  <p>To work around, I have moved the code in a web service; I am calling the <code>PrintAsync()</code> method, and I have subscribed to <code>OnPrintComplete</code> to get notified. Now I can send as many prints as I want without worrying about asp.net thread starvation or blocking requests.</p>
  
  <p>I know web services <em>internally</em> use threading, but that is IOCP threads, which means it will not bother the asp.net worker threads.</p>
  
  <p>I couldn't think of <strong>possible cons</strong>, except that it will be a web service.</p>
  
  <p><strong>Is this a good approach? What would have been a <strike>better</strike> <em>alternate</em> version of handling this functionality?</strong></p>