2014-10-15 3 views
0

Будет ли кто-нибудь указывать меня в правильном направлении? Настройка задачи Async? У меня есть метод InitializeDatabases со следующей задачи:Настройка задачи Async

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, но я чувствую, что я нахожусь над моей головой.

+0

@SLaks: Ой, вы абсолютно правы - извините! Удалит мой комментарий, а затем убирает после того, как вы удалили свой ... –

ответ

3

К await В каждом вызове вы ожидаете завершения каждого из них до начала следующего.

Позвонив по телефону .Wait(), вы все равно замораживаете свой интерфейс.

Вы хотите await Task.WhenAll(x.LoadAsync(), y.LoadAsync(), ...).

Смежные вопросы