Dir*_*oer 10 c# asp.net asp.net-mvc url-routing async-await
我有一个自定义ASP.NET路由,其中包含IO操作.现在,假设这些IO操作无法缓存(即太大).
在某种程度上,我正在寻找一个AsyncRouteBase类
public async override Task<RouteData> GetRouteDataAsync(HttpContextBase httpContext)
public async override Task<VirtualPathData> GetVirtualPathAsync(RequestContext requestContext, RouteValueDictionary routeValues);
我正在使用ASP.NET MVC 5.2.3.0
不幸的是,没有办法async用一个方法覆盖一个非方法async。我认为你最好的选择是使用一种async非override方法并从非方法中调用该方法,async例如:
public override RouteData GetRouteData(HttpContextBase httpContext) {
    return GetRouteDataAsync(httpContext);
    //return await GetRouteDataAsync(httpContext);
}
public async override Task<RouteData> GetRouteDataAsync(HttpContextBase httpContext){
    //operations here
}
注意:但这可能会导致问题。如果原始代码不希望async执行任何代码,则引入此模式可能会打破预期。如果可能的话避免它。
作为建议,请参阅使用任务简化异步编程
| 归档时间: | 
 | 
| 查看次数: | 275 次 | 
| 最近记录: |