Η συνάρτηση DoEvents

Ισχύει για
Access για Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Σημείωση

Η συνάρτηση, η μέθοδος, το αντικείμενο ή η ιδιότητα που περιγράφεται σε αυτό το θέμα είναι απενεργοποιημένη εάν η υπηρεσία Microsoft Jet Expression Service εκτελείται σε κατάσταση λειτουργίας φίλτρου, γεγονός που αποτρέπει την αξιολόγηση ενδεχομένως μη ασφαλών εκφράσεων. Για περισσότερες πληροφορίες σχετικά με τη λειτουργία φίλτρου, αναζητήστε τη "λειτουργία φίλτρου" στη Βοήθεια.

Αποδίδει την εκτέλεση, έτσι ώστε το λειτουργικό σύστημα να μπορεί να επεξεργαστεί άλλα συμβάντα.

Σύνταξη

DoEvents( )

Παρατηρήσεις

Η συνάρτηση DoEvents επιστρέφει έναν ακέραιο που αντιπροσωπεύει τον αριθμό των ανοιχτών φορμών στις αυτόνομες εκδόσεις της Microsoft Visual Basic, όπως η Visual Basic, Professional Edition. Το DoEvents επιστρέφει μηδέν σε όλες τις άλλες εφαρμογές.

Το DoEvents μεταβιβάζει τον έλεγχο στο λειτουργικό σύστημα. Ο έλεγχος επιστρέφεται αφού το λειτουργικό σύστημα ολοκληρώσει την επεξεργασία των συμβάντων στην ουρά του και αποσταλούν όλα τα κλειδιά στην ουρά SendKeys .

Το DoEvents είναι πιο χρήσιμο για απλά πράγματα, όπως το να επιτρέπεται σε έναν χρήστη να ακυρώσει μια διεργασία μετά την έναρξή της, για παράδειγμα μια αναζήτηση για ένα αρχείο. Για διεργασίες που διαρκούν πολύ, η απόδοση στον επεξεργαστή επιτυγχάνεται καλύτερα με τη χρήση χρονοδιακόπτη ή την ανάθεση της εργασίας σε ένα στοιχείο ActiveX EXE. Στην τελευταία περίπτωση, η εργασία μπορεί να συνεχιστεί εντελώς ανεξάρτητα από την εφαρμογή σας και το λειτουργικό σύστημα φροντίζει για πολλαπλές εργασίες και τεμαχισμό χρόνου.

Κάθε φορά που παραδίδεστε προσωρινά στον επεξεργαστή σε μια διαδικασία συμβάντος, βεβαιωθείτε ότι η διαδικασία δεν εκτελείται ξανά από διαφορετικό μέρος του κώδικά σας πριν επιστρέψει η πρώτη κλήση. Αυτό θα μπορούσε να προκαλέσει απρόβλεπτα αποτελέσματα. Επιπλέον, μην χρησιμοποιείτε DoEvents εάν άλλες εφαρμογές θα μπορούσαν ενδεχομένως να αλληλεπιδράσουν με τη διαδικασία σας με απρόβλεπτους τρόπους κατά τη διάρκεια του χρόνου που έχετε παραχωρήσει τον έλεγχο.

Παράδειγμα

Σημείωση

Τα παραδείγματα που ακολουθούν δείχνουν τη χρήση αυτής της συνάρτησης σε μια λειτουργική μονάδα Visual Basic for Applications (VBA). Για περισσότερες πληροφορίες σχετικά με την εργασία με τη VBA, επιλέξτε " Αναφορά προγραμματιστών " στην αναπτυσσόμενη λίστα δίπλα στην επιλογή "Αναζήτηση " και εισαγάγετε έναν ή περισσότερους όρους στο πλαίσιο αναζήτησης.

Αυτό το παράδειγμα χρησιμοποιεί τη συνάρτηση DoEvents για να προκαλέσει την απόδοση της εκτέλεσης στο λειτουργικό σύστημα μία φορά κάθε 1000 επαναλήψεις του βρόχου. Τα DoEvents επιστρέφουν τον αριθμό των ανοιχτών φορμών της Visual Basic, αλλά μόνο όταν η κεντρική εφαρμογή είναι η 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.