Toggle navigation
首页
(current)
问答
文章
话题
商城
登录
注册
sys.waitUntil与sys.waitUntilExt的区别
基础用法都是相似的,用于协程的阻塞等待: sys.taskInit(function() while true do sys.waitUntil("MSG") end end) 不同点在于函数返回值不...
基础用法都是相似的,用于协程的阻塞等待: sys.taskInit(function() while true do sys.waitUntil("MSG") end end) 不同点在于函数返回值不同: sys.waitUntil 返回 true(收到消息)/false(超时)和Data(如果有); sys.waitUntilExt返回 MSG(消息的str)/ false(超时)和Data(如果有); ```lua --发布消息 sys.taskInit(function() while true do sys.wait(2000) sys.publish("MSG_TEST", "test_payload") log.info("msg_test", "send") end end) --订阅消息 --sys.subscribe("MSG", function(callback) log.info("msg",callback ) end) --测试waitUntil sys.taskInit(function() while true do local result, data = sys.waitUntil("MSG_TEST") log.info("msg.waitUntil", result, data) end end) --测试waitUntil timeout sys.taskInit(function() while true do local result, data = sys.waitUntil("MSG_TEST", 1500) log.info("msg.waitUntil.timeout", result, data) end end) --测试waitUntilExt sys.taskInit(function() while true do local msg, data = sys.waitUntilExt("MSG_TEST") log.info("msg.waitUntilExt", msg, data) end end) --测试waitUntilExt timeout sys.taskInit(function() while true do local msg, data = sys.waitUntilExt("MSG_TEST", 1500) log.info("msg.waitUntilExt.timeout", msg, data) end end) ``` 输出结果如下: ``` [2020-03-13 09:38:54.648]: [I]-[msg_test] send [2020-03-13 09:38:55.155]: [I]-[msg.waitUntil.timeout] false nil [2020-03-13 09:38:55.157]: [I]-[msg.waitUntilExt.timeout] false nil [2020-03-13 09:38:56.656]: [I]-[msg.waitUntilExt] MSG_TEST test_payload [2020-03-13 09:38:56.658]: [I]-[msg.waitUntil] true test_payload ```
发表于 2020-03-13 09:45
阅读 ( 3458 )
分类:
默认分类
0 推荐
打赏
收藏
你可能感兴趣的文章
相关问题
0 条评论
请先
登录
后评论
技术销售Delectate
43 篇文章
作家榜
»
技术销售Delectate
43 文章
陈夏
26 文章
国梁
24 文章
miuser
21 文章
晨旭
20 文章
朱天华
19 文章
金艺
19 文章
杨奉武
18 文章
×
发送私信
发给:
内容:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!