/* Page prose (zh-Hans) */
"CleaningUpOnTermination" = "# 用 onTermination 做清理\n\n一个真实的传感器在没人再监听时需要被关掉；否则它会永远采样下去（并且耗尽电池）。continuation 给了你一个正好用于此事的钩子：**`onTermination` 会在流结束时运行一次**，无论它是正常结束的，还是消费者走开了。\n\n这个版本无限地流式发送读数，并在结束时给传感器断电。";
"CleaningUpOnTermination-2" = "**观察运行：**三个读数打印出来，然后循环 `break`。离开循环会拆掉这个流，于是 `onTermination` 带着 `.cancelled` 触发，打印 `Consumer left: sensor powered down`，并取消内部的生产者任务。没有那个钩子，`while` 循环就会在后台永远采样下去，即便没人在读它：一个经典的泄漏。\n\n`onTermination` 是你的清理抽屉：取消计时器、关闭文件、注销观察者。一拿到 continuation 就把它设置好，这样无论流以何种方式结束，它都已就绪。\n\n* callout(旁注): `onTermination` 闭包必须是 `@Sendable` 的。它可能从一个不同于创建流的任务里运行，所以它只能触碰那些可以安全共享的东西（比如我们在这里取消的 `Task` 句柄）。如果你去碰某个不安全的东西，Swift 6 会把它标出来。\n\n[上一页](@previous)  |  第 4 / 7 页  |  [下一页: 取消会停止消费](@next)";
