/* Page prose (de) */
"MainActorRun" = "# `MainActor.run`: ein einmaliger Sprung auf den Hauptthread\n\nEinen ganzen Typ als `@MainActor` zu markieren ist die richtige Wahl, wenn die Aufgabe des Typs die UI ist. Aber manchmal steckst du tief in Hintergrundarbeit, einer großen Berechnung, einem Parsevorgang, einem Batch-Import, und nur *ein kleines Stück* braucht den MainActor: der Moment, in dem du das Display aktualisierst. Die ganze Task nur dafür auf den Hauptthread zu verschieben würde den Hauptthread verschwenden.\n\n`MainActor.run { }` führt eine einzelne Closure auf dem MainActor aus, wartet auf sie und reicht ihr Ergebnis zurück. Hier erledigen wir schwere Arbeit auf einem Hintergrundthread und springen dann nur mit der Display-Aktualisierung auf den Hauptthread:";
"MainActorRunNotice" = "Die erste Zeile gibt `false` aus: Die Addition lief abseits des Hauptthreads, wo schwere Arbeit hingehört. Innerhalb von `MainActor.run` gibt das `deposit` `true` aus: Diese eine Closure, und nur diese Closure, lief auf dem MainActor. Der Wert, den sie zurückgab, kam über den Sprung zurück, sodass `shown` abseits des Hauptthreads wieder nutzbar ist.\n\nDas ist das moderne Echo von \"erledige die Schwerstarbeit abseits des Hauptthreads, dann `DispatchQueue.main.async`, um das Label zu aktualisieren\", nur dass es ein einziger Ausdruck ist, einen Wert zurückgeben kann und der Compiler garantiert, dass die Closure wirklich auf dem Hauptthread läuft.\n\n* callout(Probier es aus): Füge ein zweites `display.deposit(25)` in denselben `MainActor.run`-Block ein. Beide Aktualisierungen passieren in einem *einzigen* Sprung auf den Hauptthread. Ohne `MainActor.run` würdest du jede einzeln mit `await` versehen und für jede Zeile hin und her springen.\n\n## Eine ganze Task auf dem Hauptthread ausführen\n\n`MainActor.run` springt mit einer einzelnen Closure. Wenn du willst, dass eine *ganze* Task auf dem MainActor läuft, von überall aus, sogar tief im Hintergrundcode, starte sie mit `Task { @MainActor in }`:\n\n```swift\nTask { @MainActor in\n    display.deposit(25)   // already on the main actor, so no await\n    display.deposit(25)\n}\n```\n\nAlles darin läuft auf dem MainActor, sodass die `await`s, die du auf der vorigen Seite brauchtest, einfach verschwinden.\n\n[Zurück](@previous)  |  Seite 4 von 11  |  [Weiter: Nur eine Funktion oder Property markieren](@next)";
