Funktionen DoEvents

Obs!: Den funktion, den metod, det objekt eller den egenskap som beskrivs i det här avsnittet inaktiveras om Microsoft Jet Expression Service körs i begränsat läge, vilket förhindrar utvärderingen av potentiellt osäkra uttryck. Om du vill ha mer information om begränsat läge söker du efter "begränsat läge" i hjälpen.

För över körningen så att operativsystemet kan hantera andra händelser.

Syntax

DoEvents ( )

Anmärkningar

Funktionen DoEvents returnerar ett heltal som representerar antalet öppna formulär i fristående versioner av Microsoft Visual Basic, till exempel Visual Basic Professional Edition. DoEvents returnerar noll i alla andra program.

DoEvents lämnar över kontroll till operativsystemet. Kontrollen återgår när operativsystemet har bearbetat händelserna i kön och alla nycklar i kön SkickaTecken har skickats.

DoEvents är mest användbar för enklare åtgärder. Ett exempel är att en användare avbryter en process, såsom sökning efter en fil, när den har startats. För långvariga processer är det bättre att föra över till processorn genom att använda en timer eller delegera uppgiften till en ActiveX EXE-komponent. I det senare fallet kan aktiviteten fortsätta helt fristående från programmet och operativsystemet tar hand om multitasking och processdelning.

Varje gång du tillfälligt för över till processorn inom en händelseprocedur: Kontrollera att procedur inte körs igen från en annan del av din kod innan första anropet returneras eftersom det kan orsaka oväntade resultat. Dessutom ska du inte använda DoEvents om andra program eventuellt kan interagera med din procedur på oförutsedda sätt under tiden som du för över kontroll.

Exempel

Obs!: I exemplen nedan visar vi hur du använder den här funktionen i en Visual Basic for Applications-modul (VBA). Om du vill läsa mer om hur man använder VBA, kan du välja Info för utvecklare i listrutan bredvid Sök och sedan skriva en eller flera söktermer i sökrutan.

I det här exemplet används funktionen DoEvents för att föra över kontroll till operativsystemet var tusende iteration av loopen. DoEvents returnerar antalet öppna Visual Basic-formulär, men bara när värdprogrammet är 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.
Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×