Using tasks/ ThreadPool on IIS application (asp .net)
We have an asp.net application on an iis 7. we need to c开发者_开发技巧reate an async process to do calculating (using a web service) and not keeping the client waiting, we used ThreadPool to do that (i prefer Tasks but i am a server side guy).
My questions are : 1. if using a thread pool on iis does it take threads from the iis pool from clients or from the OS ? 2. What would you use Tasks or ThreadPool (Tasks give you much more i know but the UI guys like the pool). TanksThe ASP.NET host provides a single thread pool per process. So if you're using ThreadPool
, then it's taking from the same pool that is drawn from for server requests.
That said, if you're starting background operations that are independent from a single client request, then you should be using a Win32 service, web service, message queue system, or something similar. Running "background" threads in ASP.NET goes against the entire architecture of IIS; it's much easier to scale properly and do other IT work (e.g., restarting app pools) if you maintain the stateless nature of HTTP.
Task, still consumes threads from thread pool.
As far, as I understood you question, 3rd party service performs CPU-heavy calculation, and you need asynchronously wait it to complete.
In case, if you want to postpone page rendering, until computation is complete, Async pages will help. This approach will return processing thread to thread-pool, while waiting.
Could you provide more details about required solution, for more precise answer?
精彩评论