DoEvents-Funktion

Hinweis : Die Funktion, die Methode, das Objekt oder die Eigenschaft, die bzw. das in diesem Thema erläutert wird, ist deaktiviert, falls der Ausdrucksdienst in Microsoft Jet im geschützten Modus (Sandkastenmodus) ausgeführt wird. In diesem Modus wird die Auswertung von potenziell unsicheren Ausdrücken verhindert. Weitere Informationen zum geschützten Modus erhalten Sie, wenn Sie in der Hilfe nach "Sandkastenmodus" suchen.

Führt zur Ausführung, damit das Betriebssystem andere Ereignisse verarbeiten kann.

Syntax

DoEvents( )

Hinweise

Die DoEvents-Funktion gibt eine Integer-Datentyp zurück, welche die Anzahl der offenen Formulare in eigenständigen Versionen von Microsoft Visual Basic, wie Visual Basic Professional Edition darstellt. DoEvents gibt in allen anderen Anwendungen Null zurück.

DoEvents übergibt die Steuerung an das Betriebssystem. Nachdem das Betriebssystem die Verarbeitung der Ereignisse in seiner Warteschlange abgeschlossen hat und alle Schlüssel in der Warteschlange Tastaturbefehle gesendet worden sind, wird die Steuerung zurückgegeben.

DoEvents ist besonders hilfreich für einfache Vorgänge, z. B. wenn einem Benutzer ermöglicht werden soll, einen Vorgang (beispielsweise die Suche nach einer Datei) abzubrechen, nachdem dieser gestartet wurde. Für Vorgänge, deren Ausführung längere Zeit in Anspruch nehmen, kann eine Ausgabe an den Prozessor besser mithilfe eines Zeitgebers oder durch Delegieren der Aufgabe durchgeführt werden. Im letzteren Fall kann die Ausgabe vollständig unabhängig von Ihrer Anwendung fortgesetzt werden und das Betriebssystem übernimmt das Multitasking und die Zeiteinteiung.

Jedes Mal, wenn Sie innerhalb einer Ereignisprozedur vorübergehend an den Prozessor übergeben, müssen Sie sicherstellen, dass die Prozedur nicht erneut von einem anderen Teil des Codes ausgeführt wird, bevor der erste Aufruf zurückgegeben wird. Dies könnte zu unerwarteten Ergebnissen führen. Verwenden Sie außerdem DoEvents nicht, wenn andere Anwendungen möglicherweise auf unvorhergesehene Art mit Ihrer Prozedur in Konflikt geraten, während Sie die Steuerung übernommen haben.

Beispiel

Hinweis : Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic für Applikationen). Wenn Sie weitere Informationen zum Arbeiten mit VBA wünschen, wählen Sie Entwicklerhilfe in der Dropdownliste neben Suchen, und geben Sie einen oder mehrere Begriffe in das Suchfeld ein.

In diesem Beispiel wird die DoEvents-Funktion verwendet, damit die Berechnung einmal alle 1.000 Iterationen der Schleife vom Betriebssystem ausgeführt wird. DoEvents gibt die Anzahl der geöffneten Visual Basic-Formulare zurück, aber nur, wenn es sich bei der Hostanwendung um Visual Basic handelt.

' 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.
Teilen Facebook Facebook Twitter Twitter E-Mail E-Mail

War diese Information hilfreich?

Sehr gut. Noch anderes Feedback?

Was können wir verbessern?

Vielen Dank für Ihr Feedback!

×