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