L'exécution Asynchrone en Boucle Foreach C# async attendent

J'ai du mal à saisir le concept de base de c# async attendent.

Fondamentalement, ce que j'ai est une Liste d'objets dont j'ai besoin de traiter, le traitement comporte une itération à travers ses propriétés et de rejoindre les cordes, puis la création d'un nouvel objet (dans ce cas appelé trellocard) et, finalement, l'ajout d'une liste de trellocards.

L'itération prend silencieux un long moment, Donc ce que je voudrais faire est de traiter de multiples objets à la manière asynchrone.

J'ai essayé plusieurs méthodes mais, fondamentalement, je veux faire quelque chose comme cela. (dans l'exemple ci-dessous, j'ai enlevé le traitement, et vient de mettre le système.le filetage.fil de discussion.sleep(200). Im attendent que ce n'est PAS une méthode asynchrone, et j'ai pu utiliser des tâches.de retard, mais le point est, mon traitement n'a pas de méthodes asynchrones, je veux juste exécuter l'intégralité de la méthode avec plusieurs instances.

    private async Task<List<TrelloCard>> ProcessJobs(IQueryable<IGrouping<CardGrouping, Job>> jobs)
    {
        List<TrelloCard> cards = new List<TrelloCard>();

        foreach (var job in jobs.ToList())
        {
           card = await ProcessCards(job, cards);  //I would like to run multiple instances of the processing
           cards.add(card); //Once each instance is finshed it adds it to the list
        }


  private async Task<TrelloCard> ProcessCards(Job job)
    {
        System.Threading.Thread.Sleep(2000);  //Just for examples sake

        return new TrelloCard();
    }
InformationsquelleAutor michael | 2017-01-10