/* Page prose (fr) */
"MainActorMainThread" = "# `@MainActor`: le thread principal, vérifié par le compilateur\n\nL'état d'UI ne doit jamais être touché ailleurs que sur le thread principal. La façon classique de respecter cette règle était d'envelopper chaque mise à jour dans `DispatchQueue.main.async` et d'*espérer* ne jamais oublier. `@MainActor` fait le travail pour toi: marque un type `@MainActor` et chacune de ses méthodes est **garantie** de s'exécuter sur le thread principal, peu importe qui l'appelle, et le compilateur le vérifie.\n\nPour voir cette garantie faire un vrai travail, nous démarrons délibérément sur un **thread d'arrière-plan** avec `Task.detached`, puis nous appelons dans un affichage `@MainActor`. Un petit assistant indique si nous sommes sur le thread principal, parce que Swift ne te laisse pas lire `Thread.isMainThread` *directement* dans une tâche asynchrone: une tâche peut sauter de thread, donc une lecture brute serait peu fiable.";
"MainActorMainThreadNotice" = "Lis la sortie de haut en bas. La première ligne affiche `false`: nous sommes vraiment sur un thread d'arrière-plan. Chaque ligne de `deposit` affiche `true`: `@MainActor` a tiré ce travail sur le thread principal pour nous. Nous avons démarré hors du principal, et pourtant l'affichage n'a jamais été touché que sur le principal, et nous n'avons jamais écrit `DispatchQueue.main.async` une seule fois. C'est toute la promesse de `@MainActor`.\n\nTu as bien dû écrire `await` avant chaque `deposit`. C'est de cela que parle la page suivante.\n\n* callout(Essaie): Change `Task.detached` en une `Task` simple. Une `Task` simple hérite du contexte de la page, qui est le main actor, donc maintenant même la première ligne affiche `true`: il n'y a jamais eu de thread d'arrière-plan à quitter. C'est `Task.detached` qui nous en avait mis un.\n\n[Précédent](@previous)  |  page 2 sur 11  |  [Suivant: Passer sur le main actor](@next)";
