Je suis en utilisant une API client qui est complètement asynchrounous, qui est, chaque opération renvoie Task
ou Task<T>
, e.g:
static async Task DoSomething(int siteId, int postId, IBlogClient client)
{
await client.DeletePost(siteId, postId); // call API client
Console.WriteLine("Deleted post {0}.", siteId);
}
En utilisant le C# 5 async/await opérateurs, est-ce le bon/le moyen le plus efficace de commencer plusieurs tâches et d'attendre qu'elles se terminent:
int[] ids = new[] { 1, 2, 3, 4, 5 };
Parallel.ForEach(ids, i => DoSomething(1, i, blogClient).Wait());
ou:
int[] ids = new[] { 1, 2, 3, 4, 5 };
Task.WaitAll(ids.Select(i => DoSomething(1, i, blogClient)).ToArray());
Depuis l'API client est à l'aide de HttpClient en interne, je m'attendrais à ce à la question 5 requêtes HTTP immédiatement, écrit à la console que chacun complète.