Nota: La función, método, objeto o propiedad descrita en este tema se deshabilita si el Servicio de expresiones de Microsoft Jet se ejecuta en modo de espacio aislado, lo que impide la evaluación de expresiones potencialmente no seguras. Para obtener más información sobre el modo de espacio aislado, busca "modo de espacio aislado" en la Ayuda.
Genera la ejecución para que el sistema operativo pueda procesar otros eventos.
Sintaxis
DoEvents ( )
Comentarios
La función DoEvents devuelve un entero que representa el número de formularios abiertos en versiones independientes de Microsoft Visual Basic, como Visual Basic o Professional Edition. DoEvents devuelve cero en todas las demás aplicaciones.
DoEvents pasa el control al sistema operativo. El control se devuelve cuando el sistema operativo ha terminado de procesar los eventos de su cola y se han enviado todas las claves de la cola SendKeys .
DoEvents es muy útil para cosas sencillas, como permitir que un usuario cancele un proceso después de que se haya iniciado, por ejemplo, una búsqueda de un archivo. Para procesos de larga duración, el rendimiento en el procesador se realiza mejor mediante el uso de un temporizador o delegar la tarea a un componente EXE de ActiveX. En este último caso, la tarea puede continuar completamente independiente de la aplicación y el sistema operativo se encarga de la multitarea y el recorte de tiempo.
Cada vez que ceda temporalmente al procesador dentro de un procedimiento de evento, asegúrese de que la procedimiento no se ejecute de nuevo desde otra parte del código antes de que devuelva la primera llamada; esto podría provocar resultados impredecibles. Además, no use DoEvents si otras aplicaciones podrían interactuar con su procedimiento de maneras imprevesas durante el tiempo que ha cedido el control.
Ejemplo
Nota: Los ejemplos siguientes muestran el uso de esta función en un módulo de Visual Basic para Aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, seleccione referencia para desarrolladores en la lista desplegable situada junto a búsqueda y escriba uno o varios términos en el cuadro de búsqueda.
En este ejemplo se usa la función DoEvents para que la ejecución ceda al sistema operativo una vez cada 1000 iteraciones del bucle. DoEvents devuelve el número de formularios abiertos de Visual Basic, pero solo cuando la aplicación host es Visual Basic.
' Create a variable to hold number of
' Visual Basic forms loaded and visible. Dim I, OpenForms For I = 1 To 150000 ' Start loop. If I Mod 1000 = 0 Then ' If loop has repeated ' 1000 times. OpenForms = DoEvents ' Yield to operating system. End If Next I ' Increment loop counter.