XNA: Как работает многопоточность?


9

Я хотел бы реализовать многопоточность в моей игре XNA, но я не уверен, как все работает при компиляции для XBOX 360. Может кто-нибудь подробнее остановиться на этом?

Например, сколько потоков поддерживает XBOX? Я понимаю, что XNA использует специальную версию Compact Framework. Как это влияет на код во время разработки? Реализую ли я вещи по-другому при разработке для XBOX, чем Windows?

Спасибо.

Ответы:


13

В основном, xbox 360 имеет 6 аппаратных потоков, распределенных по 3 ядрам. Два из них зарезервированы для платформы xna и общего использования системы. Потоки работают так же, как и в .net Framework для Windows, за исключением того, что вы получаете дополнительные методы SetProcessorAffinity . В отличие от windows, xbox не делает для вас никакого необычного планирования потоков, поэтому вы должны указать ему, на каком аппаратном потоке запустить ваш поток.

Есть несколько хороших пулов потоков с поддержкой xbox, посмотрите на Google, если вам нужен пример кода, но если вы уверены, что с потоками в windows эта страница msdn должна дать вам все, что вам нужно.


3
Точно. Просто для завершения картины темы распределяются следующим образом: RHRHCH. R = Зарезервировано для XNA. H = «Hyperthreaded» ядро. C = Физическое ядро
Джонатан Дикинсон

Я бы не назвал два аппаратных потока на ядро ​​«физическим», а не «многопоточным» из-за того, что технология отличается от реализации Intel: arstechnica.com/old/content/2005/06/xbox360-2.ars
Оскар Дювеборн,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.