/* Page prose (fr) */
"WrappingUp" = "# Récapitulatif\n\nUn task group est ce à quoi tu recours quand le nombre de travaux parallèles est décidé à l'exécution plutôt que fixé dans le code source: déploie le travail en éventail, puis récolte les résultats au fur et à mesure qu'ils se terminent, avec la portée structurée garantissant que rien ne fuit. Le piège qui fait trébucher la plupart des gens est l'*ordre* des résultats, alors garde à l'esprit les points à retenir ci-dessous avant de lui faire confiance.\n\n* Utilise un **task group** quand le nombre de travaux parallèles est *dynamique*; utilise `async let` quand c'est un petit ensemble *fixe*.\n* `withTaskGroup(of:)` ouvre le groupe, `group.addTask { }` engendre un enfant par élément, et `for await result in group` récolte les résultats au fur et à mesure qu'ils se terminent.\n* Les résultats arrivent dans l'**ordre d'achèvement**, pas dans l'ordre de soumission: renvoie `(index, value)` depuis chaque enfant et trie à la fin si tu as besoin de l'ordre d'origine; n'indexe jamais dans les résultats par la position d'arrivée.\n* **Consomme le groupe en l'itérant.** Si tu fais `addTask` mais que tu ne fais jamais `for await` dessus, le groupe attend quand même chaque enfant à la fin de la portée; tu as simplement jeté les résultats. (Pour des enfants « lance et oublie » délibérés, utilise `withDiscardingTaskGroup` pour le dire exprès.)\n* `withThrowingTaskGroup` relève à nouveau la première erreur d'un enfant et annule le reste; attrape-la autour du groupe. Pour sauter les échecs à la place, renvoie un optionnel depuis un groupe simple.\n* La **garantie structurée**: la portée du groupe ne retourne jamais tant qu'un enfant est encore en cours d'exécution, donc rien ne fuit; l'annulation se propage vers le bas jusqu'à chaque enfant.\n* Pour un grand `N`, **plafonne le nombre en vol** (amorce avec `N` tâches, puis ajoute-en une au fur et à mesure que chacune se termine) pour borner la mémoire et la charge.\n\n---\n\n## La suite\n\nLe chapitre suivant est [Actors](Actors.playgroundchapter/Overview). Tu as évité avec soin l'état mutable partagé entre ces tâches parallèles; maintenant rencontre le type qui rend son partage *sûr*.\n\n[Précédent](@previous)  |  page 9 sur 9";
