public class CoronaRuntimeTaskDispatcher extends Object
CoronaRuntime's
线程上执行的任务。这些任务向 CoronaRuntime
及其 LuaState
提供线程安全访问。此类主要目的是为其他线程提供一个调用 Lua 函数或操作属于 CoronaRuntime's
LuaState
中 Lua 全局变量的手段。这是通过在 CoronaRuntimeTask
对象中实现 LuaState
操作代码,然后通过此类的 send()
方法将该任务对象发送给 CoronaRuntime
来完成的。此类将以线程安全方式处理此问题,并确保在渲染帧之前,在 CoronaRuntime's
线程上执行任务对象。
此类的实例是不可变的。
构造函数和说明 |
---|
CoronaRuntimeTaskDispatcher(CoronaRuntime runtime)
创建一个新的调度程序,该调度程序将任务发送到给定的
CoronaRuntime 。 |
CoronaRuntimeTaskDispatcher(LuaState luaState)
创建一个新的调度程序,该调度程序将任务发送到拥有给定
LuaState 的 CoronaRuntime 。 |
修饰符和类型 | 方法和说明 |
---|---|
boolean |
isRuntimeAvailable()
确定要发送任务的目标
CoronaRuntime 是否仍可供此调度程序使用。 |
boolean |
isRuntimeUnavailable()
确定要发送任务的目标
CoronaRuntime 是否永久不可用,这意味着此调度程序不再有 CoronaRuntime 可发送任务。 |
void |
send(CoronaRuntimeTask task)
将给定的任务发送到
CoronaRuntime 中,以便在渲染帧之前执行该任务。 |
public CoronaRuntimeTaskDispatcher(CoronaRuntime runtime)
CoronaRuntime
。runtime
- 对 CoronaRuntime
(此调度程序将向其发送任务)的引用。将其设置为 null 允许,但会创建一个永久处于非活动状态的调度程序。
如果给定了 CoronaRuntime
已经被释放/销毁,所创建的调度程序也将永久处于非活动状态,您可以通过调用 CoronaRuntime
的 wasDiposed()
方法对此进行检查。当其关联的 CoronaActivity
已销毁时,CoronaRuntime
将被释放。
您可以通过调用所创建调度程序的 isRuntimeAvailable()
方法,来检查该调度程序是否能够向目标 CoronaRuntime
发送任务。
public CoronaRuntimeTaskDispatcher(LuaState luaState)
LuaState
的 CoronaRuntime
。luaState
- 对 LuaState
(其由您想为目标设定的 CoronaRuntime
所拥有)的引用。将其设置为 null 允许,但会创建一个永久处于非活动状态的调度程序。
如果给定了 CoronaRuntime
已经被释放/销毁,所创建的调度程序也将永久处于非活动状态,您可以通过调用 CoronaRuntime
的 wasDiposed()
方法对此进行检查。当其关联的 CoronaActivity
已销毁时,CoronaRuntime
将被释放。
您可以通过调用所创建调度程序的 isRuntimeAvailable()
方法,来检查该调度程序是否能够向目标 CoronaRuntime
发送任务。
public boolean isRuntimeAvailable()
CoronaRuntime
是否仍可供此调度程序使用。CoronaRuntime
仍然可供此调度程序发送任务,则返回 true。如果 CoronaRuntime
已被释放/销毁(在其关联的 CoronaActivity
已销毁时发生),则返回 false。这将永久禁用此调度程序。
public boolean isRuntimeUnavailable()
CoronaRuntime
是否永久不可用,这意味着此调度程序不再有 CoronaRuntime
可发送任务。CoronaRuntime
已被释放/销毁(在其关联的 CoronaActivity
已销毁时发生),则返回 true。这将永久禁用此调度程序。如果 CoronaRuntime
仍然可用,则返回 false。
public void send(CoronaRuntimeTask task)
CoronaRuntime
,在它呈现一个帧之前执行该任务。此任务将在 CoronaRuntime
运行的同一线程上执行。此方法的主要目的是使另一个线程能够在 Lua 正在运行的同一线程上调用 Lua 函数或操作 LuaState
中的全局变量。
任务将按此方法发送它们的顺序,由 CoronaRuntime
执行。
task
- 要由 CoronaRuntime
执行的任务。将其设置为 null 时将会抛出一个 异常
。