我正在尝试理解.net中的任务,我理解的是它们比线程更好,因为它们代表需要完成的工作,当有空闲线程时,它只是被拾取并且工作允许完整的cpu到被利用.
我看到Task
了全新的mvc 5项目,我想知道为什么会这样?
总是这样做是否有意义,或者只是在功能中可以阻止工作时?
我猜测,因为这确实像一个线程,仍然有可能需要的同步对象这是正确的吗?
MVC 5使用Task<ActionResult>
它来完全异步.通过使用Task<T>
,可以使用新的async
和await
语言功能来实现这些方法,这允许您以简单的方式使用MVC组合异步IO功能.
在使用MVC时,一般来说,Task<T>
希望不会使用线程 - 它们将组成异步操作(通常是IO绑定工作).通常,在服务器上使用线程会降低整体可伸缩性.