2.1. ディスパッチ処理

ディスパッチ処理

Pia の各機能の処理はジョブによって行われるため、ジョブ処理を進めるために、スケジューラのディスパッチ関数 nn::pia::common::Scheduler::Dispatch() を呼ぶ必要があります。

通常、1 ゲームフレームに 1 回または 2 回の頻度で呼び出します。アクションゲームでは通信遅延を低減するために、ゲームの通信処理の前後に 1 回ずつ、計 2 回 nn::pia::common::Scheduler::Dispatch() を呼び出すことを推奨します。 前後で呼び出すことで直前の受信をゲーム処理に反映させることができ、ゲーム処理の結果を直後に送信することができます。

 

コード 2-1. ディスパッチ処理
nn::pia::common::Scheduler::CreateInstance();
nn::pia::common::Scheduler::GetInstance()->Dispatch();
参考:

Dispatch() の引数にタイムアウト時間を指定することができますが、必ずその時間以下に収まることを保証するものではありません。

参考:

ジョブの一部はバックグラウンドスレッド(スケジューラが管理する内部スレッド)で処理されます。そのため、Scheduler のインスタンスを作成してからインスタンスを破棄するまで、スレッドを一つ消費します。