C# 异步方法中获取前面执行结果
在异步方法中,如果希望在最后一个await语句之前获取前面的执行结果,可以使用变量来保存这些结果,然后在需要的地方使用这些变量。
在你的代码中,可以使用以下方式来保存前面的执行结果:
public async Task CreateAsync(TaskAddDto input)
{
// ...
var resutl = new WarehouseLocationTask(CurrentUser.TenantId, input.Task.TaskId, TaskTypeEnum.BatchAdd, TaskStatusEnum.Ongoing, input.Task.TotalNum, CurrentUser.Name);
var task1 = await _warehouseLocationTaskRepository.InsertAsync(resutl);
var taskTemp = ObjectMapper.Map<List<WarehouseLocationTaskTempAddDto>, List<WarehouseLocationTaskTemp>>(input.TaskTemp);
var result1 = await wlTask1(resutl);
var result2 = await wlTask2(taskTemp);
// 后台任务的执行代码
await _backgroundJobManager.EnqueueAsync(new WarehouseLocationTaskDataArgs() { dataList = taskTemp, taskid = input.Task.TaskId, tenantId = CurrentUser.TenantId });
}
现在,你可以在最后一个await语句之前使用result1和result2变量来访问前面执行的结果。
原文地址: https://www.cveoy.top/t/topic/qnH1 著作权归作者所有。请勿转载和采集!