/* Page prose (fr) */
"WhichToolWhen" = "# Quel outil quand: un aide-mémoire\n\nGarde ceci à portée de main. Dans du code neuf, pars de la colonne **Moderne**; descends à la colonne **Classique** seulement pour une raison listée.\n\n* **Exécuter du travail hors du thread principal.**  \nModerne: `Task { }`. Classique: `queue.async`.\n* **Exécuter deux ou trois récupérations indépendantes, connues d'avance.**  \nModerne: `async let`. Classique: `DispatchGroup`.\n* **Exécuter un nombre variable de travaux parallèles.**  \nModerne: `TaskGroup`. Classique: groupe + sémaphore.\n* **Protéger un état mutable partagé.**  \nModerne: `actor`. Classique: file en série ou sémaphore de compte 1.\n* **Toucher l'UI / revenir au principal.**  \nModerne: `@MainActor`. Classique: `DispatchQueue.main.async`.\n* **Gérer un flux d'événements dans le temps.**  \nModerne: `AsyncStream`. Classique: delegate ou callback répété.\n* **Faire le pont avec une API de callback existante.**  \nModerne: `withCheckedContinuation`. Classique: *c'est ainsi que tu traverses*.\n* **Annuler du travail en cours.**  \nModerne: annulation coopérative de `Task`. Classique: `Operation.cancel()` + `isCancelled` manuel.\n\n---\n\nUn cas va dans l'autre sens: quand tu as vraiment besoin d'une **file spécifique, d'une QoS, d'une source de timer ou d'une barrière**, GCD reste l'outil correct et direct, et il n'y a aucun remplacement moderne vers lequel se tourner.\n\n[Précédent](@previous)  |  page 7 sur 8  |  [Suivant: Récapitulatif](@next)";
