-1
I'we得到了与取消标记异步控制器操作作为参数:取消儿童任务时如何取消父母任务?
public async Task<ActionResult> Index(string NomenCode = "", string ProducerName = "", bool? WithAnalog = null, long? OrderId = null, CancellationToken cancelToken = default(CancellationToken))
{
// .. some code
// my async method gets this token
await SearchModel.GetRemains(search, NomenCode, ProducerName, _WithAnalog, this.HttpContext, cancelToken);
//.. more code
}
SearchModel.GetRemains
方法调用3种其他异步方法(网络服务),当其中一人获得由超时被取消,其他都是不执行。
在这3个Web服务的每一个中,我也以异步方式连接到数据库。当第三方的async
子方法出错时,如何使我的async
任务中的2个能够正常工作?
我将取消标记参数从父方法传递给所有async
方法。
如果我不想要一个子动作影响我的父动作的执行呢?但是,如果父母被取消了,那么就要把它拆掉?我该怎么办?
感谢您的关注和帮助
这三个异步方法在哪里被调用? –
里面的某个地方SearchModel.GetRemains() –
List> tasks = new List >(); 任务 t = new SearchMethodEmex()。GetResult(searchParam); tasks.Add(t); 任务 t = new SearchMethodStells()。GetResult(searchParam); tasks.Add(t); 任务 t = new SearchMethodMikado()。GetResult(searchParam); tasks.Add(t); 等待this.HandleTasks(任务,cToken).ConfigureAwait(false); –