【发布时间】:2019-11-06 21:38:33
【问题描述】:
也许我在这里遗漏了一些明显的东西。因此,在 C# 中,我们在 IO 操作中使用了 async/await 功能,以便在等待 IO 完成时释放线程。
问题是为什么我们必须这样做,为什么框架不能自动这样做?
编辑 简而言之,我们称之为很酷的东西
var a = File.ReadAllText
它的工作原理就像我们调用
var a = await File.ReadAllTextAsync
因为 .net 框架将负责异步调用所有 IO 操作(它作为同步代码从用户代码接收)。
【问题讨论】:
-
请显示一些具体代码以帮助我们了解您的想法,或者添加更多详细信息,您的要求还不清楚。
-
您可能不想异步执行操作。
-
@Jeroen Mostert 为什么我必须放置 async/await?
-
因为同步代码更容易编写、编译和理解,这就是为什么默认情况下,您编写的所有内容都是同步执行的。构建一种语言和框架是可能的,其中一切都普遍异步,线程不存在并且您不需要关键字 - 但 .NET 不是这样的框架,C# 不是这样的语言。跨度>
-
您不必等待每个异步调用。
标签: c# asynchronous async-await