Forums Últimos mensajes - Powered by IBM
 

procesos asincronos

11/03/2007 - 12:01 por Hugo Gsell | Informe spam
Hola. Basicamente necesito "emular" de alguna manera el compotamiento de
DOEVENTS del vb6.

En concreto explico lo que hacía antes (en vb6):
Para emitir mensajes de error parpadeantes o que cambiaran estilo de letra,
etc... tenia un procedimiento global.. al que le pasaba como parametro el
objeto en el que deseaba cambie el estilo (color tamaño, etc) de letra...
que normalmente era un label que usaba en la parte inferior de mis form..
para indicar mensjes... pero como decia, se pasaba como parametro (por
referencia) este objeto y un valor integer que indicaba cuantos segundos
demoria el "efecto"... el codigo en cuestion era un do while con el tiempo
pasado como parametro y el objeto iba cambiando por ej de negro a rojo
pero entre cada ciclo del while habia un DOEVENTS ... esto provocaba que
apenas comenzaba el "parpadeo" daba tiempo para que siga la aplicación
llamante... a fin de que por ej. si estaba ingresando un NOMBREDEUSUARIO.. y
daba error mostraba el error durante 2 segundos (el parpadeo) pero durante
ese tiempo el usuario ya podía ir reescribiendo el nombre del usuario. y
no ESPERAR a que el SLEEP termine para recién poder reingresar... ¿Se
entiende?
Estuve viendo con el tema de llamadas a procesos y subprocesos... pero lo
veia tan simple antes.
es decir en mi código llamador.. ponia ESPERA (NomLabel, TiempoDemora) y eso
era todo

Espero me puedan ayudar.



Hugo A. Gsell
 

Leer las respuestas

#1 SoftJaén
11/03/2007 - 17:14 | Informe spam
"Hugo Gsell" escribió:

Basicamente necesito "emular" de alguna manera el compotamiento de
DOEVENTS del vb6.



Hola, Hugo:

Las operaciones asíncronas en .NET están basadas en lo que se conoce como
«Delegados asíncronos». Si deseas conocer el mecanismo de implementación,
abre la ayuda de Visual Studio y busca en el índice «delegados
asincrónicos», donde te aparecerá una serie de temas y ejemplos, los cuales
deberás de adaptar a tus necesidades.

Pero, desde luego, no esperes que a simple vista, dicho mecanimo sea tan
fácil como efectuar una llamada a la función «DoEvents» de Visual Basic
clásico.

Ahora bien, si deseas continuar utilizando el método «DoEvents», puedes
ejecutar alguno de los siguientes métodos:

System.Windows.Forms.Application.DoEvents

My.Application.DoEvents


Un saludo
Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares