ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้

ฟังก์ชัน DoEvents

หมายเหตุ: ฟังก์ชัน วิธีการ วัตถุ หรือคุณสมบัติที่อธิบายไว้ในหัวข้อนี้จะถูกปิดใช้งานถ้า Microsoft Jet Expression Service เรียกใช้ในโหมด Sandbox ซึ่งป้องกันการประเมินนิพจน์ที่อาจไม่ปลอดภัย ดูข้อมูลเพิ่มเติมเกี่ยวกับโหมด Sandbox ค้นหา "โหมด Sandbox" ในวิธีใช้

การดําเนินการผลตอบแทนเพื่อให้ระบบปฏิบัติการสามารถดําเนินการเหตุการณ์อื่นๆ ได้

ไวยากรณ์

DoSvents ( )

ข้อสังเกต

ฟังก์ชัน Do Events จะส่งกลับจํานวนเต็มที่แสดงจํานวนฟอร์มที่เปิดอยู่ใน Microsoft Visual Basic เวอร์ชันสแตนด์อโลน เช่น Visual Basic, Professional Edition DoSvents จะส่งกลับค่าศูนย์ในแอปพลิเคชันอื่นๆ ทั้งหมด

DoSvents ส่งต่อการควบคุมไปยังระบบปฏิบัติการ ตัวควบคุมจะถูกส่งกลับหลังจากระบบปฏิบัติการเสร็จสิ้นการประมวลผลเหตุการณ์ในคิวและคีย์ทั้งหมดในคิว SendKeys ถูกส่งแล้ว

DoSvents มีประโยชน์มากที่สุดกับเรื่องง่ายๆ เช่น การอนุญาตให้ผู้ใช้สามารถยกเลิกกระบวนการหลังจากที่เริ่มต้นแล้ว ตัวอย่างเช่น การค้นหาไฟล์ ถ้ากระบวนการที่ทํางานอยู่เป็นเวลานาน การได้ผลลัพธ์จากตัวประมวลผลจะทํางานได้ดีกว่าโดยการใช้ตัวจับเวลาหรือการมอบหมายงานให้กับคอมโพเนนต์ ActiveX EXE ในกรณีหลัง งานสามารถเป็นอิสระต่อจากแอปพลิเคชันของคุณอย่างสิ้นเชิง และระบบปฏิบัติการจะจัดการการดําเนินการหลายอย่างและเวลาต่อๆ ไป

ทุกครั้งที่คุณให้ผลตอบแทนกับตัวประมวลผลภายในกระบวนงานเหตุการณ์ชั่วคราว ตรวจสอบให้แน่ใจว่า กระบวนงาน จะไม่ถูกเรียกใช้อีกครั้งจากส่วนอื่นของโค้ดของคุณก่อนที่สายเรียกเข้าแรกจะส่งกลับ ซึ่งอาจทําให้เกิดผลลัพธ์ที่คาดการณ์ไม่ได้ นอกจากนี้ อย่าใช้ DoSvents ถ้าแอปพลิเคชันอื่นอาจโต้ตอบกับกระบวนงานของคุณในรูปแบบที่ไม่ได้คาดไว้ในระหว่างเวลาที่คุณได้ให้การควบคุม

ตัวอย่าง

หมายเหตุ: ตัวอย่างที่ตามมาจะสาธิตการใช้ฟังก์ชันนี้ในโมดูล Visual Basic for Applications (VBA) For more information about working with VBA, select Developer Reference in the drop-down list next to Search and enter one or more terms in the search box.

ตัวอย่างนี้ใช้ฟังก์ชัน DoSvents เพื่อทําให้การดําเนินการได้ผลตอบแทนของระบบปฏิบัติการหนึ่งครั้งทุกๆ 1000 รอบของการวนรอบ DoSvents จะส่งกลับจํานวนฟอร์ม 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.

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ขยายทักษะ Office ของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

ขอบคุณสำหรับคำติชมของคุณ!

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×