è¿ç¨ä¸çº¿ç¨åæ¥çåç§å¸¸ç¨æ¹å¼ï¼1ã 临çåºï¼CCriticalSectionï¼å½å¤ä¸ªçº¿ç¨è®¿é®ä¸ä¸ªç¬å æ§å ±äº«èµæºæ¶ï¼å¯ä»¥ä½¿ç¨ä¸´çåºå¯¹è±¡ãæ¥æ临çåºç线ç¨å¯ä»¥è®¿é®è¢«ä¿æ¤èµ·æ¥çèµæºæ代ç 段ï¼å ¶ä»çº¿ç¨è¥æ³è®¿é®ï¼å被æèµ·ï¼ç´å°æ¥æ临çåºç线ç¨æ¾å¼ä¸´çåºä¸ºæ¢ã
请ç¹å»è¾å ¥å¾çæè¿°
å ·ä½åºç¨æ¹å¼ï¼1ã å®ä¹ä¸´çåºå¯¹è±¡CcriticalSection g_CriticalSection;2ã å¨è®¿é®å ±äº«èµæºï¼ä»£ç æåéï¼ä¹åï¼å è·å¾ä¸´çåºå¯¹è±¡ï¼g_CriticalSection.Lockï¼ï¼ã
请ç¹å»è¾å ¥å¾çæè¿°
3ã 访é®å ±äº«èµæºåï¼åæ¾å¼ä¸´çåºå¯¹è±¡ï¼g_CriticalSection.Unlockï¼ï¼ï¼ 2ã äºä»¶ï¼CEventï¼äºä»¶æºå¶ï¼åå 许ä¸ä¸ªçº¿ç¨å¨å¤çå®ä¸ä¸ªä»»å¡åï¼ä¸»å¨å¤éå¦å¤ä¸ä¸ªçº¿ç¨æ§è¡ä»»å¡ãæ¯å¦å¨æäºç½ç»åºç¨ç¨åºä¸ï¼ä¸ä¸ªçº¿ç¨å¦Aè´è´£ä¾¦å¬é信端å£ï¼å¦å¤ä¸ä¸ªçº¿ç¨Bè´è´£æ´æ°ç¨æ·æ°æ®ï¼å©ç¨äºä»¶æºå¶ï¼å线ç¨Aå¯ä»¥éç¥çº¿ç¨Bä½æ¶æ´æ°ç¨æ·æ°æ®ã
请ç¹å»è¾å ¥å¾çæè¿°
æ¯ä¸ªCevent对象å¯ä»¥æ两ç§ç¶æï¼æä¿¡å·ç¶æåæ ä¿¡å·ç¶æãCevent类对象æ两ç§ç±»åï¼äººå·¥äºä»¶åèªå¨äºä»¶ãèªå¨äºä»¶å¯¹è±¡ï¼å¨è¢«è³å°ä¸ä¸ªçº¿ç¨éæ¾åèªå¨è¿åå°æ ä¿¡å·ç¶æã
请ç¹å»è¾å ¥å¾çæè¿°
人工äºä»¶å¯¹è±¡ï¼è·å¾ä¿¡å·åï¼éæ¾å¯å©ç¨çº¿ç¨ï¼ä½ç´å°è°ç¨æåå½æ°ReSet()æå°å ¶è®¾ç½®ä¸ºæ ä¿¡å·ç¶æã
请ç¹å»è¾å ¥å¾çæè¿°