ASP.NET MVC4 Async controller - Why to use?

前端 未结 1 1348
花落未央
花落未央 2020-12-02 18:42

I am trying to understand why and when should I use an async controller action. Eventually, when I use await in it, it will wait for the operation

相关标签:
1条回答
  • 2020-12-02 19:02

    The point of the await keyword is to let you work with asynchronous operations without writing ugly callbacks.

    Using asynchronous operations helps avoid wasting thread pool threads.

    Explanation

    ASP.Net runs all of your code in threads from the managed thread pool.
    If you have too many slow requests running at once, the thread pool will get full, and new requests will need to wait for a thread to get free.

    Frequently, however, your requests are slow not because they're doing computation (compute-bound), but because they're waiting for something else, such as a hard disk, a database server, or an external webservice (IO- or network-bound).

    There is no point in wasting a precious threadpool thread simply to wait for the external operation to finish.

    Asynchronous operations allow you to start the operation, return your thread to the pool, then "wake up" on a different thread pool thread when the operation is finished.
    While the operation is running, no threads are consumed.

    0 讨论(0)
提交回复
热议问题