gpt4 book ai didi

c# - 任务与异步任务

转载 作者:行者123 更新时间:2023-12-02 03:57:54 26 4
gpt4 key购买 nike

好吧,我一直在试图解决这个问题,我读过一些文章,但没有一篇提供我正在寻找的答案。

我的问题是:为什么 Task 必须返回任务,而 async Task 则不需要?例如:

public override Task TokenEndpoint(OAuthTokenEndpointContext context)
{
// Code removed for brevity.

return Task.FromResult<object>(null);
}

正如您所看到的,该方法不是异步,因此它必须返回一个任务。

现在,看一下这个:

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
// Code removed for brevity...
if(user == null)
{
context.SetError("invalid_grant", "username_or_password_incorrect");
return;
}

if(!user.EmailConfirmed)
{
context.SetError("invalid_grant", "email_not_confirmed");
return;
}

// Code removed for brevity, no returns down here...
}

它使用async关键字,但它不返回任务。这是为什么?我知道这可能是有史以来最愚蠢的问题。但我想知道为什么会这样。

最佳答案

async 向编译器指示该方法包含 await。在这种情况下,您的方法隐式返回一个任务,因此您不需要这样做。

关于c# - 任务与异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48392630/

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