On m'a donc dit récemment que la façon dont j'utilisais mon .ContinueWith for Tasks n'était pas la bonne façon de les utiliser. Je n'ai pas encore trouvé de preuves de cela sur Internet, alors je vais vous demander les gars et voir quelle est la réponse. Voici un exemple de la façon dont j'utilise .ContinueWith:
public Task DoSomething()
{
return Task.Factory.StartNew(() =>
{
Console.WriteLine("Step 1");
})
.ContinueWith((prevTask) =>
{
Console.WriteLine("Step 2");
})
.ContinueWith((prevTask) =>
{
Console.WriteLine("Step 3");
});
}
Maintenant, je sais que c'est un exemple simple et qu'il fonctionnera très rapidement, mais supposons simplement que chaque tâche effectue une opération plus longue. Donc, on m'a dit que dans le .ContinueWith, vous devez dire prevTask.Wait (); sinon, vous pourriez travailler avant la fin de la tâche précédente. Est-ce que c'est possible? J'ai supposé que ma deuxième et troisième tâche ne s'exécuteraient qu'une fois leur tâche précédente terminée.
Ce qu'on m'a dit comment écrire le code:
public Task DoSomething()
{
return Task.Factory.StartNew(() =>
{
Console.WriteLine("Step 1");
})
.ContinueWith((prevTask) =>
{
prevTask.Wait();
Console.WriteLine("Step 2");
})
.ContinueWith((prevTask) =>
{
prevTask.Wait();
Console.WriteLine("Step 3");
});
}