読者です 読者をやめる 読者になる 読者になる

処理と描画を別コアで同時に行いたい場合XNAではどうするのだ

XNAのGameクラスにはUpdateとDrawがあって、フレーム落ちなどに自動的に対処してくれるようになっている。それ自体は便利なのだが、じゃあUpdateとDrawを別々のコアで処理しようと思ったらどうすればいいのだ。

  • Drawはからっぽにして全部Updateでなんとかする

なんかうまく描画されないのでだめっぽい。

  • Updateの最後でUpdate用のスレッドをStartさせて次のUpdateの最初でJoinする

Windows上だとちらつくし、360上だとものすごくパフォーマンスが落ちる。

  • Start、JoinじゃなくてMonitorのEnterとExitを駆使してなんとかする

複雑すぎてわけ分からなくなった。

  • その他のいい方法がある

教えてくれ。マルチコアハンドリングのいいサンプルコードが欲しいぞ。

  • そもそも処理と描画を別コアでやろうとか考えるな

つうか最適化はあとでやれっていうのが真理なのだがね。前フレの状態を保持するオーバヘッドとかも馬鹿にならんし、複数コアを使っても速くなる保障はないんだし。