thread 예제 코드
tmid = thread.dispatch( -- 비동기 작업 디스패치
function()
sys.msleep(2700)
sys.toast("这是第 2.7 秒")
end
)
--
tid = thread.dispatch( -- 비동기 작업 디스패치
function()
sys.msleep(300)
for i=1,10 do
sys.toast("线程 2: "..i)
sys.msleep(1000)
end
sys.toast("应该运行不到这里")
end
)
--
-- iPhone 5C에서 두 손가락을 오므려 사진 앱의 이미지를 축소하는 예제
--
thread.dispatch(function() -- 스와이프 작업 디스패치
touch.on(59,165)
:move(297,522)
:msleep(500)
:off()
end)
--
thread.dispatch(function() -- 스와이프 작업을 하나 더 디스패치
touch.on(580,1049)
:move(371,1049)
:msleep(500)
:off()
end)
--
proc_queue_clear("来自远方的消息")
eid = thread.register_event( -- 사전 상태에 값이 생기는 이벤트의 리스너 등록
"来自远方的消息",
function(val)
sys.toast("收到消息:"..val)
end
)
--
sys.msleep(300)
thread.wait(tmid)
--
for i=1,10 do
sys.toast("线程 1: "..i)
sys.msleep(400)
end
--
thread.kill(tid) -- 스레드 2 종료
thread.unregister_event("来自远方的消息", eid) -- 사전 상태에 값이 생기는 이벤트 하나 해제
--
sys.toast("全部任务已完成")
참고: 위 코드에서는 이 장에서 설명하지 않는 함수와 메서드인 proc_queue_clear, sys.msleep, sys.toast, touch.on, :move, :msleep, :off를 사용합니다.