gpt4 book ai didi

c# - 为什么对 CPU 绑定(bind)任务使用 C# async/await

转载 作者:太空狗 更新时间:2023-10-29 21:07:53 25 4
gpt4 key购买 nike

<分区>

我正在了解 C# 中的 async/await 关键字,以及它们如何促进异步编程 - 允许线程在其他地方使用,同时一些 I/O 绑定(bind)任务(如数据库调用)正在进行。

我读过很多次,async/await 适用于 I/O 绑定(bind)任务,而不是 CPU 绑定(bind)任务。 CPU 密集型任务应在单独的后台线程上执行。在这些videos中多次提到.一切正常。

但是,当使用 Task.Run 在新线程上开始长时间运行的 CPU 绑定(bind)工作时,您必须在某个时刻await 它。那么我们这里不是也使用 async/await 来处理受 CPU 限制的任务吗?请参见下面的示例。

public async Task SomeMethodAsync()
{
int result = await Task.Run(() =>
{
// Do lots of CPU bound calculations...

return result;
}

// Then do something with the result.
}

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