/* Page prose (zh-Hans) */
"WrappingUp" = "# 小结\n\n任务在你创建它的那一刻就开始运行，而取消它是一次礼貌的*请求*，不是一个停止按钮。这一章里几乎每一个意外都能追溯到这两个事实。倾向于绑定到作用域的结构化工作，并把下面的要点当作让取消保持诚实的规则。\n\n* 一个 `Task` 在创建时**立即开始**；用 `await task.value` 读取它的结果（或者用 `await task.result` 得到一个可以 `switch` 的 `Result`）。\n* **结构化**任务（`async let`、任务组）绑定到一个作用域，不能比它活得更久。**非结构化**任务（`Task`、`Task.detached`）自由漂浮，是你的责任；陷阱：一个没有句柄的 `Task { }` 无法被等待或取消。\n* 一个普通的 `Task` **继承**优先级和 actor 上下文；`Task.detached` **什么都不继承**：一件很少是你所想要的利器。\n* 任务形成一棵**树**：错误向上传播（取消兄弟任务），取消向下传播到每个子任务。\n* 取消是**协作式**的，从不是强制停止：`cancel()` 只设置一个标志，所以在任何长时间运行的工作中，都要定期用 `Task.isCancelled`、`try Task.checkCancellation()`，或一个会抛出的 `Task.sleep` 去检查它，否则“取消”就是一句谎言。\n\n---\n\n## 接下来\n\n下一章，[AsyncSequence 与 AsyncStream](AsyncSequence%20and%20AsyncStream.playgroundchapter/Overview)，从单个任务转向随时间产生的整*系列*值：用 `AsyncSequence` 和 `AsyncStream` 来消费和产生它们，在一个循环里使用 `await`。\n\n[上一页](@previous)  |  第 11 / 11 页";
