Instruccion equivalente

16/10/2004 - 19:54 por Grego | Informe spam
Hola a todos,

Alguien sabe si existe alguna instrucción equivalente a esta?

Do

System.Windows.Forms.Application.DoEvents()

Loop While Not final()

pero que no consuma tanta CPU.

Gracias,

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
16/10/2004 - 22:20 | Informe spam
Alguien sabe si existe alguna instruccin equivalente a esta?



Agregale una llamada al metodo Sleep del hilo actual:

Do
System.Windows.Forms.Application.DoEvents()
System.Threading.Thread.CurrentThread.Sleep(1)
Loop While Not Final

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#2 DJ MIAO
16/10/2004 - 23:46 | Informe spam
FLaco esplicale las cosas a los demas. Asi todos
aprendemos.

Te lo pido a ti porque Eduardo A. parece que lo obligan
para que conteste por eso nunca esplica.



Miao..
Comprate un libro..

Hola a todos,

Alguien sabe si existe alguna instrucción equivalente a


esta?

Do

System.Windows.Forms.Application.DoEvents()

Loop While Not final()

pero que no consuma tanta CPU.

Gracias,


.

Respuesta Responder a este mensaje
#3 Leonardo Azpurua
17/10/2004 - 04:58 | Informe spam
"DJ MIAO" escribió en el mensaje
news:197901c4b3c9$96756190$
FLaco esplicale las cosas a los demas. Asi todos
aprendemos.

Te lo pido a ti porque Eduardo A. parece que lo obligan
para que conteste por eso nunca esplica.

Hola, MIAO:

No se para que tanto comprar y buscar libros si no entiendes lo mas
elemental. Sólo eres relativamente eficaz criticando a los demás.

Cuando ejecutas DoEvents permites que se procesen los mensajes en la cola de
tu aplicación, y el "control" (que normalmente está en el "Proceso Inactivo
del Sistema") permanece dentro de tu aplicación. Como los Win desde la
versión 95 son multitareas, cuando otra aplicación inicia su ejecución, el
tiempo de proceso se comparte, pero nuestra aplicación (la que ejecuta el
ciclo de DoEvents) está continuamente reclamando el control. Eso puede
demorar los tiempos de respuesta de algunos servicios, y -lo peor- alarmar a
los usuarios.

Al insertar un Thread.Sleep(1) estas dejando un milisegundo (que es bastante
en terminos computacionales, y mucho más que la duración de un DoEvents) de
pausa en la tarea en ejecución, que el arbitro de tiempo del procesador le
asignará a otros procesos.

En general, es mejor que el proceso que hae que la condicion "Final" levante
un evento. De esta manera te ahorras el ciclo de DoEvents.

Salud!

Leonardo
mvp vb
Respuesta Responder a este mensaje
#4 DJ MIAO
17/10/2004 - 06:35 | Informe spam
Y quien dice que lo dije por mi?
Fue una critica general.

Si se pone codigo como el hombre que pregunto que ponga
para que cara es y de que es para todo el mundo sepa.


No se para que tanto comprar y buscar libros si no


entiendes lo mas
elemental.



Todos mis libros tocan ese tema. Lo use una sola vez el
ThreadPool (ThreadPoolWay). Pero no lo se todo tu si por
algo eres el predicador. De milagro no contaste algo de
tu vida.

"101 Visual Basic.Net Applications"
Autor: Sean Campbell





Miao...
Comprate un libro.

"DJ MIAO" escribió


en el mensaje
news:197901c4b3c9$96756190$
FLaco esplicale las cosas a los demas. Asi todos
aprendemos.

Te lo pido a ti porque Eduardo A. parece que lo obligan
para que conteste por eso nunca esplica.

Hola, MIAO:

No se para que tanto comprar y buscar libros si no


entiendes lo mas
elemental. Sólo eres relativamente eficaz criticando a


los demás.

Cuando ejecutas DoEvents permites que se procesen los


mensajes en la cola de
tu aplicación, y el "control" (que normalmente está en


el "Proceso Inactivo
del Sistema") permanece dentro de tu aplicación. Como


los Win desde la
versión 95 son multitareas, cuando otra aplicación


inicia su ejecución, el
tiempo de proceso se comparte, pero nuestra aplicación


(la que ejecuta el
ciclo de DoEvents) está continuamente reclamando el


control. Eso puede
demorar los tiempos de respuesta de algunos servicios,


y -lo peor- alarmar a
los usuarios.

Al insertar un Thread.Sleep(1) estas dejando un


milisegundo (que es bastante
en terminos computacionales, y mucho más que la duración


de un DoEvents) de
pausa en la tarea en ejecución, que el arbitro de tiempo


del procesador le
asignará a otros procesos.

En general, es mejor que el proceso que hae que la


condicion "Final" levante
un evento. De esta manera te ahorras el ciclo de


DoEvents.

Salud!

Leonardo
mvp vb


.

Respuesta Responder a este mensaje
#5 Eduardo A. Morcillo [MS MVP VB]
17/10/2004 - 07:05 | Informe spam
Todos mis libros tocan ese tema.



Lee alguno entonces, ¿o los usas para nivelar tu escritorio?.

Miao...
Comprate un libro.



Y a diferencia de Miao, leelo.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida