3. [pywin32] WaitForSingleObject 함수

pywin32/win32event|2020. 8. 31. 00:08

int = WaitForSingleObject(hHandle, milliseconds )

 

이벤트 하나를 등록시켜놓고 이벤트가 셋트 되면 이를 알려주는 함수입니다.

 

인자로는 hHandle : PyHANDLE, milliseconds : int 가 있습니다.

 

hHandle: 대기상태로 둘 이벤트 핸들입니다.

 

milliseconds: 정한 시간 만큼만 이벤트가 대기하고, 시간이 지나면 타임 아웃이 발생합니다.

 - win32event.INFINITE: 대기 시간을 무한으로 설정합니다.

 

Return Value: 함수 성공 시 리턴값은 이벤트가 왜 대기 상태에서 깨어났는지에 따라 달라집니다,

 - win32event.WAIT_ABANDONED: 뮤텍스 객체가 종료되거 전 제대로 반환되지 않았을 때

 - win32event.WAIT_OBJECT_0: 이벤트가 셋트 되어서 깨어 났을 때

 - win32event.WAIT_TIMEOUT: milliseconds에서 정한 시간이 지나 타임 아웃이 발생했을 때

 

import win32event
import win32con
import win32api

evtHandle = win32event.CreateEvent(None, win32con.FALSE, win32con.FALSE, "eventTest")

while True:
    x = win32event.WaitForSingleObject(evtHandle, 3000)
    if x == win32event.WAIT_OBJECT_0:
        print(f"signaled #1")
        break
    elif x == win32event.WAIT_TIMEOUT:
        print(f"time out")
        break

win32api.CloseHandle(evtHandle)

CreateEvent 함수에서 추가된 코드로, 3초(3000ms)만큼 대기시킨다.

 

그 결과 타임 아웃이 발생하였다.

 

반응형

'pywin32 > win32event' 카테고리의 다른 글

6. [pywin32] ResetEvent 함수  (0) 2020.08.31
5. [pywin32] SetEvent 함수  (0) 2020.08.31
4. [pywin32] OpenEvent 함수  (0) 2020.08.31
2. [pywin32] CreateEvent 함수  (0) 2020.08.30
1. [pywin32] win32event 소개  (0) 2020.08.20

댓글()