我有以下几点:
public override Task<SignInStatus> PasswordSignInAsync(string userName, string password, bool isPersistent, bool shouldLockout)
{
return base.PasswordSignInAsync(userName, password, isPersistent, shouldLockout);
}
我想将其修改为:
public override Task<SignInStatus> PasswordSignInAsync(string userName, string password, bool isPersistent, bool shouldLockout)
{
var result = base.PasswordSignInAsync(userName, password, isPersistent, shouldLockout);
//If status was successful do some thing here
if(result = success)
{
//update last logged in time.
}
//Lastly return the result
return result;
}
现在我想修改函数的功能。
我想执行基本任务,然后使用它的结果在我的重写函数中执行某些操作?
我该怎么做?
答案 0 :(得分:6)
您可以通过向方法添加async
关键字并等待基本操作来执行此操作:
public async override Task<SignInStatus> PasswordSignInAsync(string userName, string password, bool isPersistent, bool shouldLockout)
{
var result = await base.PasswordSignInAsync(userName, password, isPersistent, shouldLockout);
// Check result
return result;
}
由于提供的基本调用返回了一个等待的Task<T>
,您可以使用async-await
等待它的异步完成。
请注意,这意味着您必须“始终保持异步”,并确保在整个callstack中正确等待呼叫。
async-await
的更多内容here