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。