gpt4 book ai didi

c# - .NET 4.5 异步等待和重载方法

转载 作者:IT王子 更新时间:2023-10-29 04:14:31 26 4
gpt4 key购买 nike

我有一个异步方法:

public async Task<UserLoginExResult> LoginExAsync(CustomTable exRequest, string language, bool throwEx = true)
{
UserLoginExResult result = await UserService.LoginExAsync(UserGroup, language, TimezoneOffset, GetDeviceInfo(), GetLoginProperties(), exRequest);

ProcessLoginResult(result, false, throwEx);

return result;
}

还有一个重载:

public Task<UserLoginExResult> LoginExAsync(CustomTable exRequest, bool throwEx = true)
{
return LoginExAsync(exRequest, Language.ID, throwEx);
}

我不确定是否应该将重载的(参数较少的)标记为async并使用await?我想我不应该,但你能告诉我如果我这样做会发生什么吗?我在这里迷路了,不确定它会等待什么 Task ?它会创建一个额外的 Task 还是 await 不会创建一个新的 Task

最佳答案

不,当只是要包装和解包现有方法时,使用异步方法没有什么好处。在这里只有一个“普通”方法,委托(delegate)给“真正的”异步方法就可以了。

(它们完全不一样 - 例如,如果 UserService.LoginExAsync 方法抛出异常而不是返回失败的任务,async/await 版本只会返回失败的任务,而另一个版本也会立即抛出。)

关于c# - .NET 4.5 异步等待和重载方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13086258/

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