-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); –