Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Grabar informacion en un StorageDevice bloquea

Iniciado por blau, 01 de Noviembre de 2010, 09:02:39 PM

« anterior - próximo »

blau

Buenas, estoy teniendo problemas al grabar cualquier informacion en un StorageDevice.

Se queda bloqueado menos de un segundo, pero como tengo cosas en movimiento en la pantalla queda fatal.

He probado a lanzar la tarea desde otro thread pero da igual, ¿alguien ha tenido este problema?

Hans

En el storage deberías guardar cuando no hay nada en movimiento, por ejemplo cuando has acabado la partida o poniendo una pantalla específica que diga "guardando partida". Eso lo hacen prácticamente todos los juegos comerciales. Así te ahorras que parezca un fallo.

MrK

esto es la grandeza de la informatica de hoy en dia... multiprocesador, multitarea, coprocesadores y gpus, pero cuando el lector de CD empieza el spin-up, se para todo.

tamat

Por un stratos menos tenso

WaaghMan

Yo hago el guardado en otro hilo y no pega parones de ningún tipo. En este mismo foro hay un sticky con el StorageManager que hice en su momento. ¿El parón no se deberá a recolección de basura y no al storage?
Milkstone Studios - Autores de Avatar Ninja!, Little Racers, MotorHEAT y Wool en Xbox Live Indie Games

blau

Cita de: WaaghMan en 02 de Noviembre de 2010, 12:10:06 PM
Yo hago el guardado en otro hilo y no pega parones de ningún tipo. En este mismo foro hay un sticky con el StorageManager que hice en su momento. ¿El parón no se deberá a recolección de basura y no al storage?

Si no grabo no tironea en ningun momento. Y tengo bien acotado el momento en el que se graba.

No, no es el recolector. Yo uso la librería  EasyStorage que esta bastante bien. He estado revisando el codigo y no hace nada del otro jueves.
Aunque quiza el tema esta en que abro el storagedevice en el hilo principal y luego salvo en uno nuevo que creo para esa operacion.

Por si aporta algo de informacion se guardan unas 500kbs, y lo que estoy pensando es que quizás no sea el guardado en si, si no, que es muy grande la lista, .... estoy haciendo calculos y creo que va ser eso, 50 listas de 1000 elementos en un solo archivo....  ^_^'  ,vale, va a ser eso... el tema es que en PC va bien, pero en la XBOX recorrer esa estructura le tiene que costar...








WaaghMan

#6
Pero si se hace en un hilo aparte no debería importar si lleva mucho o poco tiempo. A menos que generes la lista en ese momento y salte el recolector...

Aunque bueno, yo creo y destruyo el StorageContainer todo en el hilo secundario, así que a lo mejor es eso.
Milkstone Studios - Autores de Avatar Ninja!, Little Racers, MotorHEAT y Wool en Xbox Live Indie Games

blau

@WaaghMan

La lista esta creada ya solamente se recorre para ir grabando la informacion en el stream.

Mañana probare a separar las listas de forma que solo se graben dos listas y no las 50 a la vez.

Aunque estoy contigo en que si creo otro hilo deberia funcionar bien.

Algo que me preocupa es el tema de las memory card, mi consola tiene disco duro, y aunque se hace el BeginShowStorageSelector ni siquiera aparece el mensaje en la pantalla porque selecciona automaticamente el HD. He de suponer que funcionara con una Memory.

Y eso que dices de liberar el storagedevice tendre que hacerlo tambien, supongo que sera mejor para trabajar las memorys, por si decides quitarla en un estado en el que no se va a grabar nada.




WaaghMan

Puedes usar un lapiz USB para que haga de memoria. Yo tengo una unidad de memoria no oficial que me vino muy bien
Milkstone Studios - Autores de Avatar Ninja!, Little Racers, MotorHEAT y Wool en Xbox Live Indie Games

angelfmarcos

Hola

A mi en su momento me paso algo parecido, al guardar se quedaba trabado unos segundos. Creo recordar que lo causaba el abrir o el cerrar el dispositivo, ahora no me acuerdo bien. Pasando lo todo a otro hilo y manteniendo el dispositivo abierto se solucionó todo.

Un saludo.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.