Σημείωση: Η συνάρτηση, η μέθοδος, το αντικείμενο ή η ιδιότητα που περιγράφεται σε αυτό το θέμα είναι απενεργοποιημένη εάν η υπηρεσία παραστάσεων Microsoft Jet εκτελείται σε κατάσταση λειτουργίας φίλτρου, κάτι που αποτρέπει τον υπολογισμό πιθανώς μη ασφαλών παραστάσεων. Για περισσότερες πληροφορίες σχετικά με τη λειτουργία φίλτρου, κάντε αναζήτηση για "λειτουργία φίλτρου" στη Βοήθεια.
Αποδίδει εκτέλεση, έτσι ώστε το λειτουργικό σύστημα να μπορεί να επεξεργαστεί άλλα συμβάντα.
Σύνταξη
DoEvents ( )
Παρατηρήσεις
Η συνάρτηση DoEvents επιστρέφει έναν Ακέραιο που αντιπροσωπεύει τον αριθμό των ανοιχτών φορμών σε μεμονωμένες εκδόσεις της Microsoft Visual Basic, όπως η Visual Basic, Professional Edition. Η συνάρτηση DoEvents επιστρέφει μηδέν σε όλες τις άλλες εφαρμογές.
Το DoEvents μεταβιβάζει τον έλεγχο στο λειτουργικό σύστημα. Το στοιχείο ελέγχου επιστρέφεται αφού ολοκληρωθεί η επεξεργασία των συμβάντων από το λειτουργικό σύστημα στην ουρά του και έχουν σταλεί όλα τα κλειδιά στην ουρά SendKeys .
Το DoEvents είναι πιο χρήσιμο για απλά πράγματα, όπως το να επιτρέπεται σε ένα χρήστη να ακυρώσει μια διαδικασία μετά την έναχησή της, για παράδειγμα μια αναζήτηση για ένα αρχείο. Για διεργασίες μακράς διάρκειας, η απόδοση στον επεξεργαστή επιτυγχάνεται καλύτερα με τη χρήση ενός Timer ή την ανάθεση της εργασίας σε ένα στοιχείο 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.