[英]Tasks vs Threads in .NET 4.5
在.Net 4
,有一个新的Tasks功能,我想知道我是否可以通过.Net 4.5
Async/Await
依赖它来Async/Await
执行所有要使用的所有方法,或者在某些情况下我将必须使用单独的Thread
,特别是我已阅读Task.Run使用ThreadPool
异步执行该方法。
结论:将Async/Await
与Tasks
结合使用可以使我摆脱使用Threads
吗?
如果您指定TaskCreationOptions.LongRunning
选项(也有等效的延续),则该任务将不使用线程池线程,而将使用常规Thread
。 从技术上讲,这是一个实现细节,不在规范中,但这并不是完全不合理的假设。
鉴于此,您应该能够使用Task
直接执行与Thread
一起执行的任何操作。
某个人可能想直接使用Thread
的主要情况是,创建您自己的并行库,假设您选择不将其构建在TPL之上。 尽管在业务应用程序的上下文中它并不重要,但是在创建自己的库时,您可能需要访问特定Thread
对象的基础详细信息,或者您可能希望避免使用Tasks
的开销(虽然很小)。
然后,当然,如果您尚未使用.NET 4.0,则不能选择使用Task
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.