lua – 函数能否知道它是否在协程内运行?
发布时间:2020-12-14 21:46:38 所属栏目:大数据 来源:网络整理
导读:有没有办法让函数知道它是否在协程中运行? 例如,我有一个send_message()函数,它尝试三次发送消息.在每次尝试之间需要等待一秒钟.如果从协程中调用此函数,我希望send_message()函数执行coroutine.yield()作为其wait-1秒循环的一部分.但如果它不在协程中,那么
有没有办法让函数知道它是否在协程中运行?
例如,我有一个send_message()函数,它尝试三次发送消息.在每次尝试之间需要等待一秒钟.如果从协程中调用此函数,我希望send_message()函数执行coroutine.yield()作为其wait-1秒循环的一部分.但如果它不在协程中,那么它应该做一个POSIX usleep(). 有没有办法做到这一点? 解决方法
我应该在Lua参考手册中看起来更好:coroutine.running()如果被主线程调用则返回nil,这对于这种情况是完美的.
问的最初原因是我将coroutine.running()与coroutine.status()混合在一起. 见:http://www.lua.org/manual/5.1/manual.html#pdf-coroutine.running (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |