5

好吧.Net 4,有新的任务功能,我想知道我是否可以依靠它来登录我想要异步执行的所有方法,或者在某些情况下我将不得不使用单独的Async/Await,特别是我已经读过 Task.Run 使用 a异步执行该方法。.Net 4.5ThreadThreadPool

结论:使用Async/Awaitwith的组合Tasks可以让我免于使用Threads吗?

4

1 回答 1

5

如果您指定TaskCreationOptions.LongRunning选项(也有一个等价的延续),那么任务将不会使用线程池线程,它将使用常规的Thread. 从技术上讲,这是一个实现细节,不在规范中,但这并不是一个完全不合理的假设。

鉴于此,您应该能够使用Task您可以Thread直接使用的东西来做任何事情。

Thread假设您选择不在 TPL 之上构建它,那么人们可能想要直接使用的主要情况是创建您自己的并行库。虽然它在业务应用程序的上下文中并不重要,但在创建自己的库时,您可能需要访问特定Thread对象的底层细节,或者您可能希望避免使用Tasks.

当然,如果你还没有使用 .NET 4.0,你就没有使用 .NET 的选项Task

于 2013-03-01T21:00:01.883 回答