/* Page prose (fr) */
"WrappingUp" = "# Récapitulatif\n\nUne tâche commence à s'exécuter au moment où tu la crées, et l'annuler est une *requête* polie, pas un bouton d'arrêt. Presque chaque surprise de ce chapitre remonte à ces deux faits. Penche vers le travail structuré lié à une portée, et traite les points à retenir ci-dessous comme les règles qui gardent l'annulation honnête.\n\n* Une `Task` **démarre immédiatement** à sa création; lis son résultat avec `await task.value` (ou `await task.result` pour un `Result` sur lequel faire un `switch`).\n* Les tâches **structurées** (`async let`, task groups) sont liées à une portée et ne peuvent pas lui survivre. Les tâches **non structurées** (`Task`, `Task.detached`) flottent librement et sont ta responsabilité; piège: une `Task { }` sans référence ne peut être ni attendue ni annulée.\n* Une `Task` simple **hérite** de la priorité et du contexte d'actor; `Task.detached` **n'hérite de rien**: un outil tranchant qui est rarement ce que tu veux.\n* Les tâches forment un **arbre**: les erreurs se propagent vers le haut (annulant les sœurs), l'annulation se propage vers le bas à chaque enfant.\n* L'annulation est **coopérative** et n'est jamais un arrêt forcé: `cancel()` ne fait que lever un drapeau, donc vérifie-le avec `Task.isCancelled`, `try Task.checkCancellation()`, ou un `Task.sleep` qui lève, périodiquement, dans tout travail de longue durée, ou \"annuler\" est un mensonge.\n\n---\n\n## La suite\n\nLe chapitre suivant, [AsyncSequence et AsyncStream](AsyncSequence%20and%20AsyncStream.playgroundchapter/Overview), passe des tâches individuelles à des *séries* entières de valeurs au fil du temps: les consommer et les produire avec `AsyncSequence` et `AsyncStream`, en utilisant `await` dans une boucle.\n\n[Précédent](@previous)  |  page 11 sur 11";
