XNA: Wie funktioniert Threading?

9

Ich möchte Threading in meinem XNA-Spiel implementieren, bin mir aber nicht sicher, wie die Dinge beim Kompilieren für die XBOX 360 funktionieren. Könnte jemand darauf näher eingehen?

Wie viele Threads unterstützt XBOX beispielsweise? Mir ist klar, dass XNA eine spezielle Version des Compact Framework verwendet. Wie wirkt sich dies auf den Code während der Entwicklung aus? Implementiere ich Dinge bei der Entwicklung für XBOX anders als für Windows?

Danke.

pek
quelle

Antworten:

13

Grundsätzlich verfügt die Xbox 360 über 6 Hardware-Threads, die auf 3 Kerne verteilt sind. Zwei davon sind für das xna-Framework und die allgemeine Systemnutzung reserviert. Das Threading funktioniert genauso wie im .net-Framework unter Windows, außer dass Sie eine zusätzliche Methode erhalten, SetProcessorAffinity . Im Gegensatz zu Windows führt die Xbox keine ausgefallene Thread-Planung für Sie durch, sodass Sie angeben müssen, auf welchem ​​Hardware-Thread Ihr Thread ausgeführt werden soll.

Es gibt einige gute Xbox-fähige Thread-Pools. Schauen Sie sich Google an, wenn Sie Beispielcode benötigen, aber wenn Sie mit dem Threading in Windows vertraut sind, sollte Ihnen diese MSDN-Seite alles geben, was Sie brauchen.

Cubed2D
quelle
3
Genau. Um das Bild zu vervollständigen, werden die Threads wie folgt verteilt: RHRHCH. R = Reserviert für XNA. H = 'Hyperthreaded'-Kern. C = physischer Kern
Jonathan Dickinson
Ich würde die beiden Hardware-Threads pro Kern nicht als "physisch" oder "hyperthreaded" bezeichnen, da sich die Technologie von der Intel-Implementierung unterscheidet: arstechnica.com/old/content/2005/06/xbox360-2.ars
Oskar Duveborn