函数:thread.create 创建协程
函数名称:创建协程
函数功能:创建一个协程
引擎版本:iOS v2.3.9,Android v2.3.4 以上
函数方法
tid = thread.create(task,back)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
task | funtion | 是 | 将该函数加入队列 |
back | table | 否 | 错误回调,当执行任务时发生错误异常,则会回调这个函数并不再抛出 |
返回值 | 类型 | 说明 |
---|---|---|
tid | number | 协程 ID,ID 可用于结束或是等待一个任务 |
函数用例
--小精灵使用此函数需要勾选网络插件
local thread = require('thread')
--处理协程的错误
local thread_id = thread.create(function()
mSleep(1000)
--故意制造的错误
--a()
--抛出异常
thread.throw("协程抛出异常")
return 100
end,{
callBack = function()
--协程结束会调用,不论是错误、异常、正常结束
dialog("协程结束了",0)
end,
errorBack = function(err)
--协程错误结束,一般是引用空调用,err 是字符串
dialog("协程错误了:"..err,0)
end,
catchBack = function(exp)
--协程异常结束,异常是脚本调用了 throw 激发的,exp 是 table,exp.message 是异常原因
local ts = require('ts')
local cjson = ts.json
dialog("协程异常了\n"..json.encode(exp),0)
end
})
thread.waitAllThreadExit()--等待所有协程结束,只能用于主线程
注意事项
- 小精灵使用此函数需要勾选网络插件。