Nisten warten in Parallel.ForEach

In eine metro-app, die ich ausführen müssen eine Reihe von WCF-Aufrufe. Es gibt eine beträchtliche Anzahl von aufrufen gestellt werden, also muss ich Sie in einer parallelen Schleife. Das problem ist, dass der parallelen Schleife beendet, bevor die WCF-Aufrufe sind alle komplett.

Wie würden Sie umgestalten, dies funktioniert wie erwartet?

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();

InformationsquelleAutor der Frage Darthg8r | 2012-07-19

Schreibe einen Kommentar