最近在项目里遇到个问题,是在MVC的项目里处理异步操作的,操作流程是这样的:
1.从MVC的一个controller调用一个异步方法:
public ActionResult CreateOrUpdateBillStockIn(BillStockInInput input) { _billService.CreateOrUpdateBillStockIn(input); return Redirect("StockIn"); }
这里是被调用的异步方法,在该方法里连续调用了其他几个异步方法:
public async Task CreateOrUpdateBillStockIn(BillStockInInput input) { await ...; await ...; }
出现的问题:
有时候在CreateOrUpdateBillStockIn方法里的操作没有完成。
原因分析:
调用CreateOrUpdateBillStockIn的方法由于不是异步的,所以不会等待异步方法跑完,所以异步方法有被半途kill的风险。
解决思路及结果:
把调用CreateOrUpdateBillStockIn方法的方法也写成异步的,问题解决了。
时间: 2024-10-05 04:04:51