C# 从方法返回泛型任务
在使用自定义身份验证时,我尝试在公共IUserStore接口中实现以下方法:C# 从方法返回泛型任务,c#,async-await,C#,Async Await,在使用自定义身份验证时,我尝试在公共IUserStore接口中实现以下方法: public Task<User> FindByIdAsync(string userId) { var user = UserRetriever.GetUser(userId); return ???; } 我被告知我的用户对象“不可等待”。是否有一个界面,我可以实现对用户,使它等待 或者,我是否可以将用户放入一个等待的容器中,以从该方法返回它?您可以使用FromResult: retu
public Task<User> FindByIdAsync(string userId)
{
var user = UserRetriever.GetUser(userId);
return ???;
}
我被告知我的用户对象“不可等待”。是否有一个界面,我可以实现对用户,使它等待
或者,我是否可以将用户放入一个等待的容器中,以从该方法返回它?您可以使用
FromResult
:
return Task.FromResult(user);
请注意,这仅存在于.Net 4.5中,您的FindByIdAsync
方法的任何用户都希望获取异步进行,而您当前的实现没有这样做
您可以创建一个任务来执行检索:
return Task.Run(() => UserRetriever.GetUser(userId));
尽管这仍然有阻塞的问题。您的代码似乎不是异步的,为什么您要尝试表现得像异步的一样呢?
return Task.Run(() => UserRetriever.GetUser(userId));