XNA: ¿Cómo funciona el enhebrado?

9

Me gustaría implementar threading en mi juego XNA, pero no estoy seguro de cómo funcionan las cosas al compilar para la XBOX 360. ¿Alguien podría dar más detalles sobre esto?

Por ejemplo, ¿cuántos hilos admite XBOX? Me doy cuenta de que XNA usa una versión especial de Compact Framework. ¿Cómo afecta esto al código durante el desarrollo? ¿Implemento las cosas de manera diferente cuando desarrollo para XBOX que Windows?

Gracias.

pek
fuente

Respuestas:

13

Básicamente, el xbox 360 tiene 6 hilos de hardware, distribuidos en 3 núcleos. Dos de estos están reservados para el marco xna y el uso general del sistema. El enhebrado funciona igual que en el marco .net en Windows, excepto que obtienes métodos adicionales, SetProcessorAffinity . A diferencia de Windows, el dosificador de Xbox hace cualquier programación de hilos sofisticada para usted, por lo que debe decirle en qué hilo de hardware ejecutar su hilo.

Hay algunos buenos grupos de subprocesos compatibles con xbox, eche un vistazo en google si necesita algún código de ejemplo, pero si está seguro de enhebrar en ventanas esa página msdn debería darle todo lo que necesita.

Cubed2D
fuente
3
Exactamente. Solo para completar la imagen, los hilos se distribuyen de la siguiente manera: RHRHCH. R = Reservado para XNA. H = núcleo 'Hyperthreaded'. C = Núcleo físico
Jonathan Dickinson
No llamaría a los dos subprocesos de hardware por núcleo "físicos" versus "hiperprocesados" debido a cómo la tecnología difiere de la implementación de Intel: arstechnica.com/old/content/2005/06/xbox360-2.ars
Oskar Duveborn