gpt4 book ai didi

c# - .NET 4.5 中的任务与线程

转载 作者:太空狗 更新时间:2023-10-29 23:16:01 25 4
gpt4 key购买 nike

嗯,在 .Net 4 中,有新的任务功能,我想知道我是否可以依赖它与 .Net 中的 Async/Await 4.5 对于我想要异步执行的所有方法,或者在某些情况下我必须使用单独的 Thread,特别是我已经阅读过 Task.Run 使用的内容一个 ThreadPool 来异步执行该方法。

结论:将 Async/AwaitTasks 结合使用是否可以让我摆脱对 Threads 的使用?

最佳答案

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

鉴于此,您应该能够使用 Task 执行您可以直接使用 Thread 执行的任何操作。

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

当然,如果您尚未使用 .NET 4.0,则无法选择使用 Task

关于c# - .NET 4.5 中的任务与线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15166734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com