[MVC] - Asynchronous操作
最近在项目里遇到个问题,是在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方法的方法也写成异步的,问题解决了。