gpt4 book ai didi

c# - 什么是 "naturally asynchronous"或 "pure asynchronous"?

转载 作者:太空狗 更新时间:2023-10-29 17:43:08 27 4
gpt4 key购买 nike

在很多关于 C# 的 async/await 的讨论中,我看到人们提到了“自然异步”或“纯异步”的术语。这些术语到底是什么意思?

“自然异步”操作的一些示例是什么?为什么这样调用它?

“非自然异步”操作的一些示例是什么,为什么?

最佳答案

几乎都是 I/O。

自然异步操作是不需要 CPU 的操作,例如通过网络发送数据或从硬盘驱动器读取数据。它们不需要任何计算,因此 CPU 可以在运行时执行其他任务。

还有一些不需要线程的逻辑操作,例如等待超时到期,或等待同步构造(例如 AsyncLock)

异步但不是天生异步的操作是在后台线程上执行的 CPU 操作。这些对于响应能力(例如,对于 UI 应用程序)很有用,但不会提高性能或可伸缩性,因为它们仍然需要相同数量的资源。

所以你有:

异步运行的天然异步操作:

await Task.Delay(1000);

同步运行的天然异步操作:

Thread.Sleep(1000);

异步运行的自然同步操作:

await Task.Run(() => CalculateSquareRoot(5));

同步运行的自然同步操作:

CalculateSquareRoot(5);

关于c# - 什么是 "naturally asynchronous"或 "pure asynchronous"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31733734/

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