XNA: Como funciona a segmentação?

9

Eu gostaria de implementar o threading no meu jogo XNA, mas não tenho certeza de como as coisas funcionam ao compilar para o XBOX 360. Alguém poderia elaborar isso?

Por exemplo, quantos threads o XBOX suporta? Percebo que o XNA usa uma versão especial do Compact Framework. Como isso afeta o código durante o desenvolvimento? Implemento as coisas de maneira diferente ao desenvolver para XBOX e Windows?

Obrigado.

pek
fonte

Respostas:

13

Basicamente, o Xbox 360 possui 6 threads de hardware, distribuídos por 3 núcleos. Dois deles são reservados para a estrutura xna e uso geral do sistema. O encadeamento funciona da mesma maneira que na estrutura .net do Windows, exceto pelos métodos adicionais SetProcessorAffinity . Ao contrário do Windows, o xbox não faz nenhum agendamento de threads sofisticado para você, então você precisa informar em qual thread de hardware executar o thread.

Existem alguns pools de threads compatíveis com xbox por aí, dê uma olhada no google se você precisar de algum código de exemplo, mas se você estiver confiante com o threading no windows, essa página msdn deve fornecer tudo o que você precisa.

Cubed2D
fonte
3
Exatamente. Apenas para concluir a imagem, os threads são distribuídos da seguinte forma: RHRHCH. R = Reservado para XNA. H = núcleo 'Hyperthreaded'. C = núcleo físico
Jonathan Dickinson
Eu não chamaria os dois threads de hardware por núcleo de "físico" versus "hyperthread" devido à diferença
Oskar Duveborn,