elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  ¿que técnica asíncrona debo usar?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿que técnica asíncrona debo usar?  (Leído 2,689 veces)
ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
¿que técnica asíncrona debo usar?
« en: 11 Enero 2013, 23:38 pm »

Bueno, el tema es que tengo un programa en visual basic que para funcionar tiene que ejecutar un "main loop" constantemente, en el loop se envían señales a otros formularios que son con los que interactua el usuario. El timer se me quedó corto así que busqué maneras más rápidas de ejecutar el main loop, comencé a reprogramarlo en modo consola con dos while anidados y usando un tickcounter para que el ciclo sea sincronizado. La velocidad es como 100 veces más rápida, pero ahora tengo un problema.

Al instanciar un formulario desde el main loop y mostrarlo éste parece estar todo el tiempo en espera (cargando, con el relogito) y aunque recibe las órdenes que le llegan del main loop no dispara sus eventos correctamente. Parece ser que no puedo hacerlo en un solo hilo, así que supongo que habrá una manera de hacer correr el formulario en otro. He leido sobre los métodos asíncronos en visualbasic.net, y veo que hay formas diferentes de hacerlo, algunas me sirven y otras no. El tema es que necesito mucha velocidad, porque los mensajes que recibe el form se traducen en ordenes gdi para dibujar objetos, pero a la vez no quiero cuellos de botella ni parones mientras el main loop está en espera.

¿Teneis alguna idea de por dónde tirar? ¿qué tipo de método asíncrono me garantiza que los dos hilos corran bien y puedan comunicarse?


En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: ¿que técnica asíncrona debo usar?
« Respuesta #1 en: 14 Enero 2013, 00:04 am »

Me he asustado un poco con lo último de los dibujos con GDI+ :xD Por lo que entiendo, el problema sería que el form esta recibiendo más datos de los que puede procesar/dibujar no? Tal vez lo he entendido mal, pero en este caso, por más que se ejecute en otro hilo seguirá existiendo el cuello de botella :-\

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
Re: ¿que técnica asíncrona debo usar?
« Respuesta #2 en: 14 Enero 2013, 17:59 pm »

Bueno, estoy haciendo un lenguaje de programación interpretado que corre sobre una máquina virtual. Hay un timer para la máquina, y otro para dibujar el buffer gráfico. El código puede mandar órdenes gráficas que se dibujan en el buffer, yo quiero que el dibujado de buffer en la superficie no interfiera en el loop principal. (Bueno, también he empezado a coquetear con directX, pero me llevará tiempo crear las clases que necesito...)
En línea

Oblivi0n


Desconectado Desconectado

Mensajes: 392

Odio las ranas.


Ver Perfil
Re: ¿que técnica asíncrona debo usar?
« Respuesta #3 en: 14 Enero 2013, 18:18 pm »

Has pensado en guardar los mensajes en una cola, e ir sacandolos cuando proceda?
En línea

ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
Re: ¿que técnica asíncrona debo usar?
« Respuesta #4 en: 14 Enero 2013, 18:38 pm »

Lo probaré y comento.
En línea

ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
Re: ¿que técnica asíncrona debo usar?
« Respuesta #5 en: 19 Enero 2013, 13:59 pm »

Bueno, he reprogramado el renderizador optimizando algo la velocidad, no he usado threads ni siquiera una pila, pero he reducido mucho las llamadas a eventos. El problema en modo consola sigue, pero creo que voy a pasar de liarme más con esto y voy a meterme en directX. Ahora estoy teniendo otros problemas para dibujar con el objeto sprite de directX, pero el diseño del objeto que encapsula directX me está gustando como me está quedando.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
que version de VB debo de usar?
Programación Visual Basic
magnavoxy 3 2,231 Último mensaje 23 Enero 2008, 14:15 pm
por ???
T-SQL ¿Cuándo debo usar GO?
Bases de Datos
DanteInfernum 1 2,581 Último mensaje 19 Septiembre 2013, 18:54 pm
por DanteInfernum
[Duda]¿Cual linux debo usar?
GNU/Linux
S E 7 E N 4 2,289 Último mensaje 13 Mayo 2017, 01:47 am
por PalitroqueZ
Ejecución asincrona de consultas mediante ADO C++
Programación C/C++
SubAtomicParticula 1 1,450 Último mensaje 3 Agosto 2017, 13:41 pm
por SubAtomicParticula
Que herramientas debo usar???
Programación General
jchaguan99 2 2,402 Último mensaje 14 Diciembre 2017, 13:42 pm
por PalitroqueZ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines