/* Page prose (de) */
"CancellationIsAPoliteRequest" = "# Abbruch ist eine höfliche Anfrage\n\nAngenommen, der Kunde ruft mitten in einer Auflage von 200 Seiten an und storniert. Du willst *jetzt* aufhören, Toner zu verschwenden. Jede `Operation` hat eine `cancel()`-Methode, aber hier ist der Teil, der Leute überrascht:\n\n**`cancel()` stoppt deinen Code nicht. Es setzt nur ein Flag (`isCancelled`) auf `true`. Deine Operation muss dieses Flag bemerken und von sich aus aussteigen.**\n\nDas nennt man **kooperativen Abbruch**: Das System fragt, und dein Code kooperiert. Nichts wird mitten in einer Anweisung gewaltsam beendet. Wenn dein `main()` `isCancelled` nie prüft, ändert der Aufruf von `cancel()` nichts; die Arbeit läuft bis zum Ende durch.\n\nDie Regel lautet also: Prüfe `isCancelled` an sinnvollen Stellen, besonders in Schleifen und vor teuren Schritten.";
"CancellationIsAPoliteRequest-2" = "**Sieh es laufen:** Du siehst drei oder vier Seiten rendern, dann `📣 Customer cancelled the order`, dann sieht die nächste Schleifeniteration `isCancelled == true` und druckt `🚫 Rendering stopped early...`. Die restlichen Seiten werden nie gerendert. Versuche, die `if isCancelled`-Prüfung zu löschen und erneut auszuführen: Jetzt werden alle zehn Seiten gerendert, ungeachtet des Abbruchs: Beweis, dass `cancel()` allein nur eine Anfrage ist.\n\n* callout(Probier es aus): Ändere die Abbruchverzögerung von `1` auf `0.1`: Wie viele Seiten werden gerendert, bevor es stoppt?\n\nZwei Details zum Festhalten:\n\n* **Der `completionBlock` läuft trotzdem.** Eine abgebrochene Operation ist immer noch eine *fertige* Operation. Deshalb prüfst du oft `isCancelled` innerhalb der Completion, um zu entscheiden, ob du erfolgreich warst oder ausgestiegen bist.\n* **Um alles in einer Warteschlange auf einmal abzubrechen,** rufe `queue.cancelAllOperations()` auf. Es sendet `cancel()` an jede Operation, die die Warteschlange kennt, aber jede muss das Flag trotzdem selbst prüfen.\n\n[Zurück](@previous)  |  Seite 3 von 7  |  [Weiter: Asynchrone Operationen](@next)";
