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.

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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.