Uwaga
Funkcja, metoda, obiekt lub właściwość opisane w tym temacie są wyłączone, jeśli usługa wyrażeń Microsoft Jet działa w trybie piaskownicy, co uniemożliwia ocenę potencjalnie niebezpiecznych wyrażeń. Aby uzyskać więcej informacji o trybie piaskownicy, wyszukaj termin "tryb piaskownicy" w Pomocy.
Daje wykonanie, dzięki czemu system operacyjny może przetworzyć inne zdarzenia.
Składnia
DoEvents( )
Uwagi
Funkcja DoEvents zwraca liczbę całkowitą reprezentującą liczbę otwartych formularzy w autonomicznych wersjach języka Microsoft Visual Basic, takich jak Visual Basic Professional Edition. DoEvents zwraca zero we wszystkich innych aplikacjach.
DoEvents przekazuje kontrolę do systemu operacyjnego. Kontrolka jest zwracana, gdy system operacyjny zakończy przetwarzanie zdarzeń w kolejce i zostaną wysłane wszystkie klucze z kolejki WyślijKeys .
DoEvents jest najbardziej przydatny do prostych rzeczy, takich jak umożliwienie użytkownikowi anulowania procesu po jego uruchomieniu, na przykład do wyszukiwania pliku. W przypadku długotrwałych procesów oddawanie danych procesorowi jest lepiej realizowane za pomocą Timera lub delegowanie zadania do składnika ActiveX EXE. W tym drugim przypadku zadanie może być kontynuowane całkowicie niezależnie od aplikacji, a system operacyjny zajmuje się wielozadaniowością i podziałem czasu.
Za każdym razem, gdy tymczasowo poddajesz się procesorowi w ramach procedury zdarzenia, upewnij się, że procedura nie jest wykonywana ponownie z innej części kodu, zanim powróci pierwsze wywołanie; Może to spowodować nieprzewidywalne wyniki. Ponadto nie należy używać DoEvents , jeśli inne aplikacje mogą wchodzić w interakcje z procedurą w nieprzewidziany sposób w czasie, w którym masz nad nią kontrolę.
Przykład
Uwaga
Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.
W tym przykładzie użyto funkcji DoEvents , aby spowodować wykonanie do systemu operacyjnego co 1000 iteracji pętli. DoEvents zwraca liczbę otwartych formularzy języka Visual Basic, ale tylko wtedy, gdy aplikacja hosta jest w języku 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.