首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置异步任务

设置异步任务
EN

Stack Overflow用户
提问于 2014-10-15 16:54:23
回答 1查看 75关注 0票数 0

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

代码语言:javascript
复制
    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任务都能同时运行。我从其他人那里收集了这么多问题,但我觉得我对这件事太过份了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-15 16:56:38

通过对每个调用进行await处理,您正在等待每个呼叫在开始下一个调用之前完成。

通过在结束时调用.Wait(),您将冻结您的UI。

你想要await Task.WhenAll(x.LoadAsync(), y.LoadAsync(), ...)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26387935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档