Bemærk!: Funktionen, metoden, objektet eller egenskaben, der er beskrevet i dette emne, deaktiveres, hvis Microsoft Jet Expression Service kører i sandkassetilstand, hvilket forhindrer evalueringen af potentielt usikre udtryk. Søg efter "sandkassetilstand" i Hjælp, hvis du vil have mere at vide om sandkassetilstand.
Medfører udførelse, så operativsystemet kan behandle andre hændelser.
Syntaks
DoEvents ( )
Bemærkninger
Funktionen DoEvents returnerer et Heltal, der repræsenterer antallet af åbne formularer i enkeltstående versioner af Microsoft Visual Basic, f.eks. Visual Basic, Professional Edition. DoEvents returnerer nul i alle andre programmer.
DoEvents videregiver kontrollen til operativsystemet. Kontrollen gives tilbage, når operativsystemet er færdig med at behandle hændelserne i sin kø, og alle nøgler i køen SendTaster er blevet sendt.
DoEvents egner sig bedst til enkle ting som at give en bruger tilladelse til at annullere en proces, efter den er startet, for eksempel søgning efter en fil. Ved længerevarende processer afgives kontrollen bedst til processoren ved hjælp af en Timer eller en uddelegering af opgaven til en ActiveX EXE-komponent. I sidstnævnte tilfælde kan opgaven fortsætte helt uafhængigt af dit program, og operativsystemet tager sig af multitasking og tidsudsnit.
Hver gang du midlertidigt giver processoren i en hændelsesprocedure, skal du sørge for, at procedure ikke udføres igen fra en anden del af din kode, før det første opkald returneres. dette kan medføre uforudsigelige resultater. Desuden må du ikke bruge DoEvents , hvis andre programmer muligvis kan interagere med din procedure på uforudsete måder i løbet af den tid, du har givet kontrol.
Eksempel
Bemærk!: Følgende eksempler demonstrerer brugen af denne funktion i et VBA-modul (Visual Basic for Applications). Hvis du vil have mere at vide om at arbejde med VBA, skal du vælge Udviklerreference på rullelisten ud for Søg og skrive ét eller flere ord i søgefeltet.
I dette eksempel anvendes funktionen DoEvents til at udføre afgivelse af kontrollen til operativsystemet én gang for hver 1.000 gentagelser af løkken. DoEvents returnerer antallet af åbne Visual Basic-formularer, men kun når værtsprogrammet er 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.