Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





[Ayuda] Programacion Multihilos en .NET

Iniciado por Pilton88, 12 de Julio de 2009, 03:14:30 AM

« anterior - próximo »

Pilton88

Hola gente. Vengo a pedir de vuestra ayuda...
Resulta que uso .NET, pero al leer el Tutorial de Referencia del dx_lib32, me encontre con esto, en la clase System, en las funciones de cronometro:

Aviso programadores de Visual Basic .NET

Esta función no es compatible con Visual Basic .NET. Si se desea programar de forma paralela se recomienda realizar programación mulillo real a través del espacio de nombres System.Threading del Framework de .NET. Para mas información sobre programación multihilo en Visual Basic .NET acceda a este articulo de la MSDN: Subprocesamiento múltiple en Visual Basic


OK, veo el link, me entero maso menos de esto de los Threads en .NET, como para reemplazar a esa funcion de VB 6... Pero me encuentro con el problema de que no dice nada de usar un INTERVALO de tiempo... comenta que se pueden hacer procesos en segundo plano... pero lo que quiero es hacer algo similar a esa funcion hecha para VB 6... es decir, lanzar un procedimiento cada un intervalo de tiempo... para poder hacer animaciones por ej.

Gracias por su atencion.

Pilton

[EX3]

Wenas, hacia tiempo que no se te veia por aqui :P

A ver, para las animaciones no deberias usar un proceso separado en un cronometro o hilo, seria como matar moscas a cañonazos en cuanto a rendimiento si no ando mal encaminado (y si alguien esta puesto en materia que lo explique con detalle o me corrija vilmente :P).

Yo para las animaciones me hice una clase sprite que contiene la lista de tiles o regiones de una textura que conforman la secuencia de animacion, una propiedad que indica el intervalo en milisegundos, un metodo Draw() para dibujar el fotograma correspondiente (y aplicarle efectos si es necesario) y un metodo Update() que simplemente se encarga de actualizar el indice del fotograma a dibujar, algo parecido a esto:

Metodo Actualizar()
    // Si el valor de cronometro es igual o superior al valor del intervalo definido:
    Si (Cronometro.Valor => Intervalo) Entonces

        // Incrementamos el indice del fotograma a dibujar:
        indice = indice + 1

        // Si el indice es superior al numero maximo de fotogramas de la animacion entonces indice apunta al primer fotograma:
        Si (indice > listaFotogramas.NumeroFotogramas) Entonces indice = 0

        // Reinicia la cuenta del cronometro:
        Cronometro.Reiniciar()

    Fin Si
Fin Metodo


Como alguna vez he comentado, lo de lanzar un proceso en segundo plano con un cronometro en VB6 venia de lujo si por ejemplo tenias que hacer alguna carga de un nivel y querias mostrar una animacion fluida, sin cortes, mientras se realizaba la carga. De todas formas, me estoy oxidando un poco en lo que .NET se refiere ya que en el trabajo uso a disgusto VB6.0. Echa un vistazo en la MSDN o directamente busca en el visor de objetos del Visual Studio en el nombre de espacios de System.Threading por que creo recordar que existe un objeto para definir eventos por intervalo de tiempo (un Timer para asociar metodos, vamos) que seria lo que andas buscando.

Ya me contaras con que andas liado ;)

Salu2...

P.D.: Cuidado que no se como se comporta dx_lib32 con el multihilo en .NET. En VB6.0 de momento no he tenido ningun susto con las funciones TIMER_CreateProcess() y la clase grafica, que es la que tiene mas posibilidades de fallar.
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Pilton88

Hola Exe! si hace tiempo no pasaba por aqui. Bueno, gracias por tu ayuda, me sirvio bastante.
Un saludo, y segui asi con esta comunidad =)

Pilton.

[EX3]

Me alegro que te sirviera de ayuda. Lo dicho, ya nos mostraras con andas liado :)

Salu2...

P.D.:
Cita de: Pilton88 en 12 de Julio de 2009, 07:16:56 AM
Hola Exe!
Os voy a cortar el pito al proximo que me llame "ejecutable", que es EX3 (estress), leches! :P ;)
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Mars Attacks







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.