在Corona SDK中,将强制函数放入独立线程,类似于iOS中的“dispatch_async block”。

可以使用Corona SDK强制让一个函数在一个单独的线程中被调用吗?

如何实现?

编辑: 所以我感觉我的系统变慢并不是因为异步调用。而是由于一个包含1000多个元素的表格视图。结果发现,这是在之前版本的corona SDK中的一个错误。更新到最新版本后,表格视图的行插入速度明显加快。

点赞
用户204101
用户204101

在 Lua 和 Corona SDK 中,最接近的方法是使用协程(coroutines),但它们并不是真正的线程,而是引用自《Programming in Lua》的一段话:

协程类似于线程(在多线程的意义上):有自己的执行线路,有自己的栈、本地变量和指令指针;但与其他协程共享全局变量和其他大部分变量。线程和协程之间的主要区别在于,概念上(或在多处理器机器上,字面意义上)具有线程的程序并行运行多个线程。协程则是协作形式的:具有协程的程序,在任何时候,只会运行其中一个协程,当运行的协程明确请求挂起其执行时,它才会挂起。

http://www.lua.org/pil/9.html

遗憾的是,如果你想用协程来模拟线程,你会失望的发现它们并不一样。

2013-07-24 00:44:10