gpt4 book ai didi

lua - 函数可以知道它是否在协程内运行吗?

转载 作者:行者123 更新时间:2023-12-04 21:07:24 26 4
gpt4 key购买 nike

有没有办法让函数知道它是否正在协程中运行?

例如,我有一个 send_message() 函数,它尝试 3 次发送消息。每次尝试之间需要等待一秒钟。如果从协程中调用此函数,我希望 send_message() 函数执行 coroutine.yield() 作为其等待 1 秒循环的一部分。但是如果它不在协程中,那么它应该做一个 POSIX usleep() 来代替。

有没有办法做到这一点?

最佳答案

我应该在 Lua 引用手册中看起来更好:如果被主线程调用, coroutine.running() 返回 nil,这非常适合这种情况。

问这个问题的最初原因是我把 coroutine.running() 和 coroutine.status() 混在一起了。

见:http://www.lua.org/manual/5.1/manual.html#pdf-coroutine.running
和:http://www.lua.org/manual/5.1/manual.html#pdf-coroutine.status

关于lua - 函数可以知道它是否在协程内运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3562675/

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