Notă
Funcția, metoda, obiectul sau proprietatea descrisă în acest subiect este dezactivată dacă Microsoft Jet Expression Service rulează în modul sandbox, ceea ce împiedică evaluarea expresiilor potențial nesigure. Pentru mai multe informații despre modul sandbox, căutați "modul sandbox" în Ajutor.
Randează execuția astfel încât sistemul de operare să poată procesa alte evenimente.
Sintaxă
DoEvents( )
Observații
Funcția DoEvents returnează un număr întreg care reprezintă numărul de formulare deschise din versiunile independente de Microsoft Visual Basic, cum ar fi Visual Basic, Professional Edition. DoEvents returnează zero în toate celelalte aplicații.
DoEvents transmite controlul către sistemul de operare. Controlul este returnat după ce sistemul de operare termină de procesat evenimentele din coada sa de așteptare și toate cheile din coada SendKeys au fost trimise.
DoEvents este util în special pentru lucruri simple, cum ar fi să permiteți unui utilizator să anuleze un proces după ce a început, de exemplu, o căutare după un fișier. Pentru procesele cu rulare îndelungată, cedarea procesorului se realizează mai bine prin utilizarea unui cronometru sau prin delegarea activității către o componentă ActiveX EXE. În acest din urmă caz, activitatea poate continua complet independent de aplicația dvs., iar sistemul de operare se ocupă de multitasking și de slicarea timpului.
De fiecare dată când cedați temporar procesorului în cadrul unei proceduri de eveniment, asigurați-vă că procedura nu este executată din nou dintr-o altă parte a codului înainte de a reveni primul apel; Acest lucru poate cauza rezultate imprevizibile. În plus, nu utilizați DoEvents dacă alte aplicații ar putea interacționa cu procedura dvs. în moduri neprevăzute în perioada în care ați preluat controlul.
Exemplu
Notă
Exemplele care urmează demonstrează utilizarea acestei funcții într-un modul Visual Basic for Applications (VBA). Pentru mai multe informații despre lucrul cu VBA, selectați Referințe pentru dezvoltatori în lista verticală de lângă Căutare și introduceți unul sau mai mulți termeni în caseta de căutare.
Acest exemplu utilizează funcția DoEvents pentru a face ca executarea să cedeze pentru sistemul de operare o dată la fiecare 1000 de iterații ale buclei. DoEvents returnează numărul de formulare Visual Basic deschise, dar numai atunci când aplicația gazdă este 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.