I had such method:
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;
}
Then I decided to use 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;
}
But now I've got an error:
An asynchronous module or handler completed while an asynchronous operation was still pending.
 
     
     
     
     
     
    