2017-02-17 36 views
0

Я пытаюсь получить из MailChimp коллекцию списка MailChimp. Я настроил процесс, как показано в примере на MailChimp.net, для получения всех списков, но он выходит из него до того, как будет возвращен список, если я не буду использовать консоль, прочитанную после вызова задачи. Как я могу заставить эту простую задачу работать?Как выполнить задачу async и Mailchimp API v3.0

static void Main(string[] args) 

{ 

    AddUpdateMailChimp(); 

    Console.Read(); 

} 

static async void AddUpdateMailChimp() 

{ 

    lstIDs = await Get_MailChimp_Info(); 

    for(int i = 0; i < lstIDs.Count; i++) 

    { 

     AddUpDateMailChimpAsync(lstIDs[i]); 
    } 

} 

private static async Task< List<string>> Get_MailChimp_Info() 

{ 

    var lstIDs = new List<string>(); 

    apikey = GetApiKey() //from config file 

    manager = new MailChimpManager(apikey); 
    //............below line is where it bombs unless I use a concole.Read in the main..........// 

    **IEnumerable< MailChimp.Net.Models.List> mailChimpListCollection = await manager.Lists.GetAllAsyunc().ConfigureAwait(continueOnCapturedContext: false);** 

    ............catch statements 

    //.......foreach loop to get the list Ids 
} 

ответ

0

У меня была эта проблема в последнее время. Поскольку AddUpdateMailChimp() является асинхронным, то метод Main() продолжает выполнение, как только он ударяет его, и не ждет результата.

Также метод возвращает пустоту, поэтому он рассматривается как огонь и забыт.

Если вы хотите, чтобы его можно было ожидать, он должен вернуть задачу.

Таким образом, в Main() вы можете сделать

var result = AddUpdateMailChimp().Result;

+0

Спасибо, я дам, что в ходу. – BillO

+0

Еще раз спасибо, это сработало. – BillO