Nota: La funzione, il metodo, la proprietà o l'oggetto descritto in questo argomento è disabilitato se Microsoft Jet Expression Service è in esecuzione in modalità sandbox, che impedisce la valutazione delle espressioni potenzialmente pericolose. Per altre informazioni sulla modalità sandbox, cercare "modalità sandbox" nella Guida.
Consente l'esecuzione in modo che il sistema operativo possa elaborare altri eventi.
Sintassi
DoEvents ( )
Osservazioni
La funzione DoEvents restituisce un integer che rappresenta il numero di maschere aperte nelle versioni autonome di Microsoft Visual Basic, ad esempio Visual Basic, Professional Edition. DoEvents restituisce zero in tutte le altre applicazioni.
DoEvents passa il controllo al sistema operativo. Il controllo viene restituito dopo che il sistema operativo ha completato l'elaborazione degli eventi nella coda e tutte le chiavi nella coda SendKeys sono state inviate.
DoEvents è molto utile per operazioni semplici come consentire a un utente di annullare un processo dopo l'avvio, ad esempio una ricerca di un file. Per processi a esecuzione prolungata, è preferibile cedere al processore usando un timer o delegando l'attività a un componente EXE ActiveX. In quest'ultimo caso, l'attività può continuare completamente indipendentemente dall'applicazione e il sistema operativo si occupa di multitasking e time slicing.
Ogni volta che si cede temporaneamente al processore all'interno di una routine evento, assicurarsi che il routine non venga eseguito di nuovo da una parte diversa del codice prima che la prima chiamata restituisca; ciò potrebbe causare risultati imprevedibili. Inoltre, non usare DoEvents se altre applicazioni potrebbero interagire con la routine in modi imprevisti durante il tempo in cui si è prodotto il controllo.
Esempio
Nota: Gli esempi seguenti illustrano l'uso di questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per altre informazioni sull'uso di VBA, selezionare Riferimenti per sviluppatori nell'elenco a discesa accanto a Cerca e immettere uno o più termini nella casella di ricerca.
Questo esempio usa la funzione DoEvents per causare la resa dell'esecuzione al sistema operativo una volta ogni 1000 iterazioni del ciclo. DoEvents restituisce il numero di maschere di Visual Basic aperte, ma solo quando l'applicazione host è 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.