CEvent

"เหตุการณ์" แสดงวัตถุของคลาสCEvent — วัตถุการซิงโครไนส์ที่อนุญาตให้มีหัวข้อหนึ่งเพื่อแจ้งให้ทราบอีกที่เกิดเหตุการณ์ เหตุการณ์ต่าง ๆ จะมีประโยชน์เมื่อต้องรู้ว่าเมื่อการทำงานของเธรด ตัวอย่างเช่น ด้ายที่คัดลอกข้อมูลไปเก็บข้อมูลถาวรของการจะต้องได้รับแจ้งเมื่อมีข้อมูลใหม่ โดยใช้วัตถุCEventเธรดสำเนาการแจ้งให้ทราบเมื่อมีข้อมูลใหม่ เธรดสามารถทำงานเร็วที่สุด?

CEventวัตถุมีสองชนิด: ด้วยตนเอง และอัตโนมัติ คู่มือCEventวัตถุที่อยู่ในสถานะที่กำหนด โดยSetEventหรือResetEventจนกว่าการเรียกฟังก์ชันอื่น ๆ CEventวัตถุโดยอัตโนมัติส่งกลับไปยังสถานะ nonsignaled (ไม่พร้อมใช้งาน) โดยอัตโนมัติหลังจากออกอย่างน้อยหนึ่งเธรด?

การใช้วัตถุCEventสร้างวัตถุCEventเมื่อจำเป็น ระบุชื่อของเหตุการณ์คุณต้องการรอ และโปรแกรมประยุกต์ของคุณควรเริ่มต้นด้วยเองก็ แล้วคุณสามารถเข้าถึงเหตุการณ์เมื่อส่งกลับค่าที่กำหนด เรียกวัตถุเหตุการณ์SetEventไปสัญญาณ (ทำให้พร้อมใช้งาน) และเรียกปลดล็อกเมื่อคุณดำเนินการทรัพยากรมีการควบคุมการเข้าถึง?

วิธีการอื่นสำหรับการใช้วัตถุCEventได้เมื่อต้องการ เพิ่มตัวแปรของชนิดCEventเป็นสมาชิกข้อมูลชั้นคุณต้องการควบคุม ในระหว่างการก่อสร้างของวัตถุมีการควบคุม เรียกที่กำหนดของสมาชิกข้อมูลCEventระบุว่า เหตุการณ์จะเริ่มส่งสัญญาณ ชนิดของเหตุการณ์วัตถุคุณ ต้อง ชื่อของเหตุการณ์ (ถ้ามันจะใช้ข้ามพรมแดนของกระบวนการ), และต้องการคุณลักษณะการรักษาความปลอดภัย?

ในการเข้าถึงทรัพยากรที่ถูกควบคุม โดยวัตถุCEventในลักษณะนี้ ครั้งแรกสร้างตัวแปรของชนิดใดCSingleLock หรือพิมพ์CMultiLock ในของทรัพยากรของคุณเข้าถึงฟังก์ชันสมาชิก จึง เรียกฟังก์ชันการสมาชิกล็อกของล็อกวัตถุ (ตัวอย่างเช่นCMultiLock::Lock) ณจุดนี้ หัวข้อของคุณจะอย่างใดอย่างหนึ่งสามารถเข้าถึงทรัพยากร รอสำหรับทรัพยากรจะนำออกใช้ และเข้าถึง หรือรอเวลาออก ความล้มเหลวในการเข้าถึงทรัพยากรและทรัพยากรที่ถูกนำออกใช้ ในกรณีใด ๆ ทรัพยากรของคุณมีการเข้าถึงในลักษณะหัวข้อเซฟ เมื่อต้องการปล่อยทรัพยากร โทรSetEventสัญญาณวัตถุเหตุการณ์ และใช้ฟังก์ชันสมาชิกการปลดล็อกของล็อกวัตถุ (ตัวอย่างเช่นCMultiLock::Unlock), หรืออนุญาตให้ล็อกวัตถุอยู่ภายนอกขอบเขต?

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้วัตถุCEventให้ดูบทความ Multithreading: วิธีการซิงโครไนส์คลาสที่ใช้ในVisual c ++ Programmer ของคำแนะนำ?

#รวม lt;afxmt.h>

สมาชิกของคลาส|nbsp คลาสพื้นฐาน| แผนภูมิของลำดับชั้น(&N)

ตัวอย่างnbsp MFC อย่าง MTGDI(&N)

Index