הערה
הפונקציה, פעולת השירות, האובייקט או המאפיין המתוארים בנושא זה אינם זמינים אם Microsoft Jet Expression Service פועל במצב ארגז חול (Sandbox), דבר שמונע הערכה של ביטויים שעלולים להיות לא בטוחים. לקבלת מידע נוסף על מצב ארגז חול, חפש "מצב ארגז חול" בעזרה.
מניב ביצוע כך שמערכת ההפעלה תוכל לעבד אירועים אחרים.
תחביר
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.