我有一个异步方法:
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
or await
不创建新的Task
?
不,在以下情况下使用异步方法没有什么好处:just将包装和打开现有的包装。在这里只要有一个“正常”方法就可以了,委托给“真正的”异步方法。
(他们不是quite相同 - 例如,如果UserService.LoginExAsync
方法抛出异常而不是返回失败的任务,async/await 版本只会返回失败的任务,而其他版本将also立即扔掉。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)