XNA:スレッドはどのように機能しますか?


9

XNAゲームにスレッドを実装したいのですが、XBOX 360向けにコンパイルするときにどのように機能するかわかりません。誰かこれについて詳しく教えてもらえますか?

たとえば、XBOXはいくつのスレッドをサポートしていますか?XNAがCompact Frameworkの特別なバージョンを使用していることを理解しています。これは開発中のコードにどのように影響しますか?XBOX用に開発する場合、Windowsとは異なる方法で実装しますか?

ありがとうございました。

回答:


13

基本的に、xbox 360には3つのコアにまたがる6つのハードウェアスレッドがあります。これらのうち2つは、xnaフレームワークと一般的なシステムでの使用のために予約されています。スレッドは、追加のメソッドSetProcessorAffinityを取得することを除いて、Windowsの.netフレームワークと同じように機能します。Windowsとは異なり、xboxはファンシーなスレッドスケジューリングを行わないため、スレッドを実行するハードウェアスレッドを指示する必要があります。

いくつかの優れたxbox対応のスレッドプールがあります。サンプルコードが必要な場合はgoogleを参照してください。ただし、Windowsでのスレッド処理に自信がある場合は、msdnページで必要なすべてを提供できます。


3
丁度。絵を完成させるために、スレッドは次のように分散されています:RHRHCH。R = XNA用に予約済み。H = 'ハイパースレッド'コア。C =物理コア
ジョナサンディキンソン

コアごとに2つのハードウェアスレッドを「物理」対「ハイパースレッド」とは呼びません。これは、テクノロジーがIntelの実装と異なるためです:arstechnica.com/old/content/2005/06/xbox360-2.ars
Oskar Duveborn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.