正在设置异步任务

本文关键字:任务 异步 设置 | 更新日期: 2023-09-27 18:26:41

有人会为我指明正确的方向设置异步任务吗?我有一个带有以下任务的InitializeDatabases方法:

    Task.Run(async () => 
        {
            await NContext.ZSA_TransactionHeader.LoadAsync();
            await NContext.ZSA_TransactionDetail.LoadAsync();
            await DContext.AR_MasterTable.LoadAsync();
            await DContext.IN_Master.LoadAsync();
            await DContext.SA_HistoryHeader.LoadAsync();
            await DContext.SA_HistoryDetail.LoadAsync();
            await DContext.SA_NonInvCode.LoadAsync();
            await DContext.SA_SalespCode.LoadAsync();
        }).Wait();

我的问题是,即使任务还没有完成加载,它也会继续执行。我需要它等待所有.LoadAsync任务完成。我还希望所有LoadAsync任务同时运行。我从其他SO问题中收集了这么多,但我觉得我对此感到不知所措。

正在设置异步任务

通过await调用每个调用,您将等待每个调用完成,然后再开始下一个调用。

通过在最后调用.Wait(),您已经冻结了UI。

您需要await Task.WhenAll(x.LoadAsync(), y.LoadAsync(), ...)