В приложении metro мне нужно выполнить несколько вызовов WCF. Существует значительное количество вызовов, поэтому мне нужно сделать их в параллельном цикле. Проблема в том, что параллельный цикл завершается до того, как вызовы WCF завершены.
Как бы вы реорганизовали это для работы, как ожидалось?
var ids = new List<string>() { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
var customers = new System.Collections.Concurrent.BlockingCollection<Customer>();
Parallel.ForEach(ids, async i =>
{
ICustomerRepo repo = new CustomerRepo();
var cust = await repo.GetCustomer(i);
customers.Add(cust);
});
foreach ( var customer in customers )
{
Console.WriteLine(customer.ID);
}
Console.ReadKey();