C28648
경고 C28648: PulseEvent는 신뢰할 수 없는 함수입니다.
동기화 개체에서 대기 중인 스레드는 커널 모드 APC에 의해 대기 상태에서 잠시 제거된 다음 APC가 완료된 후 대기 상태로 돌아갈 수 있습니다. 스레드가 대기 상태에서 제거된 기간 동안 PulseEvent 호출이 발생하면 스레드가 해제되지 않고 영원히 "중단"됩니다. PulseEvent가 호출되는 순간에 대기 중인 스레드만 해제하기 때문입니다.
PulseEvent 사용을 수정하는 몇 가지 방법은 다음과 같습니다.
이벤트를 기다리는 스레드 중 하나만 해제해야 하고 이벤트가 수동 재설정 이벤트인 경우 자동 재설정 이벤트로 변경하고 PulseEvent 대신 SetEvent를 호출합니다.
이벤트를 기다리는 스레드 중 하나만 해제해야 하고 이벤트가 자동 재설정 이벤트인 경우 PulseEvent 대신 SetEvent를 호출합니다.
이벤트를 기다리는 모든 스레드를 해제해야 하고 이벤트가 수동 재설정 이벤트인 경우 다른 종류의 동기화 개체(예: 세마포)를 사용하도록 코드를 다시 디자인합니다.
이벤트를 기다리는 모든 스레드를 해제해야 하고 이벤트가 자동 재설정 이벤트인 경우 PulseEvent 대신 SetEvent를 호출합니다(PulseEvent에 대한 원래 호출은 스레드를 하나만 해제함).