En parallèle.ForEach et asynchrone attendent

J'ai eu une telle méthode:

public async Task<MyResult> GetResult()
{
    MyResult result = new MyResult();

    foreach(var method in Methods)
    {
        string json = await Process(method);

        result.Prop1 = PopulateProp1(json);
        result.Prop2 = PopulateProp2(json);

    }

    return result;
}

Alors j'ai décidé d'utiliser Parallel.ForEach:

public async Task<MyResult> GetResult()
{
    MyResult result = new MyResult();

    Parallel.ForEach(Methods, async method =>
    {
        string json = await Process(method);    

        result.Prop1 = PopulateProp1(json);
        result.Prop2 = PopulateProp2(json);
    });

    return result;
}

Mais maintenant j'ai une erreur:

Asynchrone module ou du gestionnaire terminé pendant une opération asynchrone est toujours en attente.

  • Où obtenez-vous cette erreur? Je suis en supposant que c'est une exception, elle se produit au sein de GetResult?
  • Est votre Model en fait un Modèle de Vue et il met en œuvre INotifyPropertyChanged et est lié à la vue?
  • Non ce n'est pas un modèle de vue, j'ai probablement à changer de nom. C'est juste un simple class avec quelques accessoires
  • obtention d'exception sur le retour return result;
  • Est GetResult affecter la performance?
  • Ritchie oui, il est.
  • Double Possible de Nidification attendent en Parallèle.ForEach

InformationsquelleAutor sreginogemoh | 2014-04-17