【发布时间】:2015-02-05 15:23:50
【问题描述】:
包装一个返回a的方法可能会遇到什么问题
Task<T> where T : ClassA
使用返回的方法
Task<T> where T : IClassA
换句话说,将一个返回某种类型的任务的方法与另一个返回该类型接口的任务的方法包装起来,如下所示:
public new Task<ITspIdentity> FindByIdAsync(string id)
{
return new Task<ITspIdentity>(() => base.FindByIdAsync(id).Result);
}
base.FindByIdAsync(id) 将返回的位置
Task<TspIdentity>.
我正在尝试使用接口将 ASP.NET MVC 应用程序表示层与对 ASP.Identity 的依赖解耦。
【问题讨论】:
-
您当前的实现正在返回一个永无止境的任务,因为您尚未启动它。
-
Blimey - 这至少是一个问题;)
-
与其返回Task
为什么不能返回Task?我想这会解决你的问题 -
@Srinivasan__ Op 可能需要任务的结果。
-
@Srinivasan__ 是的,但是我只是返回一个带有对象结果的任务,然后我需要对其进行投射等。对于测试和一般用途来说不太好。
标签: c# .net task-parallel-library async-await