是否可以获得用于创建协程的原始函数?
thread = coroutine.create(function()
-- Code
end)
f = get_function_from_thread(thread)
答案 0 :(得分:4)
您无法开箱即用,但您可以随时重新定义coroutine.create
:
local create=coroutine.create
local created={}
function coroutine.create(f)
local t=create(f)
created[t]=f
return t
end
function get_function_from_thread(t)
return created[t]
end
如果您创建了许多协同程序,请考虑将created
设置为弱表。