본문 바로가기
VisualStudio.C++.C#/코딩팁,함수활용,단편

CEvent . Lock() . SetEvent() . ResetEvent()

by i.got.it 2022. 4. 9.

 

 

 

 

 

CEvent 생성자



CEvent(
    BOOL bInitiallyOwn = FALSE,
    BOOL bManualReset = FALSE,
    LPCTSTR lpszName = NULL,
    LPSECURITY_ATTRIBUTES lpsaAttribute = NULL);

 

2번 인자 bManualReset 

- TRUE :  ResetEvent() 호출해야 이벤트가 Reset 상태로 됨. 

- FALSE : SetEvent() 호출이후 ResetEvent() 호출하지 않아도 자동으로 Reset 상태로 됨. 

 

 

헤더파일 : afxmt.h

 

 

 

 

코드예. 

 

#include <afxmt.h>

// 무인자로 생성하는 경우, 2번인자 기본 FALSE 적용된다. 
// SetEvent() 호출하여 대기해제이후 ResetEvent()별도 
// 호출하지 않아도 셀프 Reset 상태로 된다.
CEvent my_event; 


void Thread
{
    while(1){
       
        my_event.Lock(); 
        // 이곳서 대기 상태로 있으며, 
        // my_event.SetEvent(); 호출하면 대기해제되고 아래 수행된 이후 
        // 다시 이자리 오면 대기상태로 됨.
 
 		처리사항들...
    }
}


//코드에서 ResetEvent() 호출시에만 reset 되게 하려면 생성시 2번인자를 TRUE로 한다. 
CEvent my_event_manual(FALSE, TRUE);

void Thread
{
    while(1){
       
        my_event_manual.Lock(); 
        // 이곳서 대기 상태로 있으며, 
        // my_event_manual.SetEvent(); 호출하면 대기해제되고 
        // ResetEvent()호출하기 전까지는 이벤트리셋되지 않으므로 계속 루프수행함.
        
        
 		처리사항들...
    }
}

 

 

 

 

 

CEvent Class | Microsoft Docs

 

CEvent Class

Learn more about: CEvent Class

docs.microsoft.com

 

 

연관 

 

 

 

 

 

 

Critical Section (크리티컬 섹션)

개요 Critical Section (크리티컬 섹션)  을 설정한 구간은 한 번에 하나의 "스레드"에서만 사용가능하다. - 프로세스 내에 여러 스레드가 있는 환경에서, 우리가 설정해둔 "크리티컬 영역" 에 어떤

igotit.tistory.com

 

 

Event Object, CreateEvent.WaitForSingleObject

개요 CreateEvent 는 이벤트개체를 생성하는 함수이며, 이벤트 개체가 생성되면 함수 SetEvent, ResetEvent 로 이벤트 상태를 제어할 수 있다. 이벤트 상태를 점검하기 위하여 함수 WaitForSingleObject 이용가

igotit.tistory.com

 

 

 

 


첫 등록 : 2022.03.16

최종 수정 : 2022.04.09

단축 주소 : https://igotit.tistory.com/3551


 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5