gpt4 book ai didi

.net - 异步函数返回 Task(Of String) 还是 String?

转载 作者:行者123 更新时间:2023-12-02 05:06:42 26 4
gpt4 key购买 nike

我正在学习TAP ,我想知道 .NET 的哪些功能允许将此方法中的 result 隐式转换为或解释为 Task(Of String):

Public Async Function CheckHostInstructionAsync() As Task(Of String)
Dim result As String
result = Await pipeReader.ReadLineAsync() 'pipeReader is a System.IO.StreamReader
If (result.Equals("exit", StringComparison.InvariantCultureIgnoreCase)) Then terminate = True
Return result
End Function

首先,如果Await pipelineReader.ReadLineAsync()“返回”一个Task(Of String),为什么我可以将其分配给result ,它被声明为字符串?

第二,为什么我可以说返回结果,尽管返回类型是Task(Of String)

最佳答案

关键在 Async/Await关键字。

Async 告诉编译器您将假装返回一个 string,并且它需要处理以下事实的复杂性:实际上返回一个最终会产生一个字符串的任务。

Await 只能在 Async 方法中使用,它告诉编译器下一个表达式将返回一个 Task生成一些东西,编译器需要解决假装此后的其余代码给出任务将返回的东西(在本例中为 String)的复杂性。

关于.net - 异步函数返回 Task(Of String) 还是 String?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27571340/

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