有人会为我指出正确的方向来设置异步任务吗?我有一个具有以下任务的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任务都能同时运行。我从其他人那里收集了这么多问题,但我觉得我对这件事太过份了。
发布于 2014-10-15 16:56:38
通过对每个调用进行await处理,您正在等待每个呼叫在开始下一个调用之前完成。
通过在结束时调用.Wait(),您将冻结您的UI。
你想要await Task.WhenAll(x.LoadAsync(), y.LoadAsync(), ...)。
https://stackoverflow.com/questions/26387935
复制相似问题