gpt4 book ai didi

lua - 如何从函数外部停止 Lua 协程?

转载 作者:行者123 更新时间:2023-12-01 16:47:15 26 4
gpt4 key购买 nike

我正在尝试创建一个调度多个协程的调度程序。调度程序需要暂停协程,我不知道如何执行此操作。

更新我的意思不是杀死,而是从外部暂停协程。

最佳答案

您可以通过在协程上设置调试 Hook 来终止协程,并从该 Hook 调用 error() 。下次调用钩子(Hook)时,它将触发 error() 调用,这将中止协程:

local co = coroutine.create(function()
while true do print(coroutine.yield()) end
end)
coroutine.resume(co, 1)
coroutine.resume(co, 2)
debug.sethook(co, function()error("almost dead")end, "l")
print(coroutine.resume(co, 3))
print(coroutine.status(co))

打印:

2
3
false coro-kill.lua:6: almost dead
dead

关于lua - 如何从函数外部停止 Lua 协程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44525457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com