好吧.Net 4
,有新的任务功能,我想知道我是否可以依靠它来登录我想要异步执行的所有方法,或者在某些情况下我将不得不使用单独的Async/Await
,特别是我已经读过 Task.Run 使用 a异步执行该方法。.Net 4.5
Thread
ThreadPool
结论:使用Async/Await
with的组合Tasks
可以让我免于使用Threads
吗?
如果您指定TaskCreationOptions.LongRunning
选项(也有一个等价的延续),那么任务将不会使用线程池线程,它将使用常规的Thread
. 从技术上讲,这是一个实现细节,不在规范中,但这并不是一个完全不合理的假设。
鉴于此,您应该能够使用Task
您可以Thread
直接使用的东西来做任何事情。
Thread
假设您选择不在 TPL 之上构建它,那么人们可能想要直接使用的主要情况是创建您自己的并行库。虽然它在业务应用程序的上下文中并不重要,但在创建自己的库时,您可能需要访问特定Thread
对象的底层细节,或者您可能希望避免使用Tasks
.
当然,如果你还没有使用 .NET 4.0,你就没有使用 .NET 的选项Task
。