Notă: Funcția, metoda, obiectul sau proprietatea descrise în acest subiect este dezactivată dacă Serviciul de expresii Microsoft Jet 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.
Oferă execuție, astfel încât sistemul de operare să poată procesa alte evenimente.
Sintaxă
DoEvents ( )
Observații
Funcția DoEvents returnează un număr întreg reprezentând numărul de formulare deschise în versiunile independente de Microsoft Visual Basic, cum ar fi Visual Basic, Professional Edition. DoEvents returnează zero în toate celelalte aplicații.
DoEvents transmite controlul sistemului de operare. Controlul este returnat după ce sistemul de operare a terminat de procesat evenimentele din coada sa de așteptare și au fost trimise toate cheile din coada SendKeys .
DoEvents este foarte util pentru lucruri simple, cum ar fi să permiteți unui utilizator să anuleze un proces după ce a început, de exemplu, o căutare pentru un fișier. Pentru procesele de lungă durată, randamentul procesorului este mai bine realizat prin utilizarea unui cronometru sau prin delegarea activității către o componentă ActiveX EXE. În ultimul caz, activitatea poate continua complet independent de aplicația dvs., iar sistemul de operare se ocupă de multitasking și de temporizarea timpului.
De fiecare dată când returnați temporar procesorului în cadrul unei proceduri de eveniment, asigurați-vă că procedură nu este executat din nou dintr-o altă parte a codului înainte de a returna primul apel; Acest lucru ar putea 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 timpul în care ați acordat control.
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 determina executarea să returneze sistemului 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.