有时,GameInput
API 需要处理内部异步事件,例如输入设备正连接或断开连接。 这些事件很少发生。 然而,应用程序也可以注册可能需要更频繁地调度的回调。 默认情况下,GameInput
创建以权限略有提升的优先级 (THREAD_PRIORITY_ABOVE_NORMAL
) 运行来服务这些事件的工作线程。
希望对此工作的发生时间以及有关线程/处理器进行更多控制的应用程序可以通过 IGameInputDispatcher 接口手动控制对这些事件的处理。 通过调用 IGameInput 接口上的 CreateDispatcher 方法可获得此接口。 通过此接口,可以使用两种方法手动调度 GameInput
的内部工作队列中的工作。 使用调度方法从 GameInput
的工作队列调度待处理的工作(如果存在)。 应用程序可以定期调用此方法。 或者可以等待从调度程序的 OpenWaitHandle 方法返回的句柄,以便检测何时需要调度已排队的工作。
虽然应用程序持有对调度程序接口的引用,但它仍然控制着调度工作。 在释放了对该调度程序接口的所有引用后,GameInput
会返回到使用内部工作线程来支持事件。