다음을 통해 공유


EventLoop_Run 함수

헤더: #include <applibs/eventloop.h>

EventLoop을 실행하고 호출자의 실행 스레드에서 보류 중인 이벤트를 디스패치합니다.

EventLoop_Run_Result EventLoop_Run(EventLoop *el, int duration_in_milliseconds,
                                   bool process_one_event);

매개 변수

  • el 실행할 EventLoop입니다.

  • duration_in_milliseconds 이벤트 루프를 실행하는 데 걸리는 시간입니다. 0이면 루프는 매개 변수 값 process_one_event 에 관계없이 이벤트가 준비되고 즉시 중단되는 경우 하나의 이벤트를 처리합니다. 0보다 크면 루프가 중단되지 않는 한 지정된 기간 동안 실행됩니다. 0보다 작으면 루프가 중단될 때까지 계속 실행됩니다. 추가 조건은 EventLoop_Stop 함수 및 process_one_event 매개 변수를 참조하세요.

  • process_one_event 첫 번째 이벤트가 처리된 후 루프를 중단할지 여부를 나타냅니다. false이면 루프가 매개 변수에 duration_in_milliseconds 지정된 기간 동안 또는 EventLoop_Stop 의해 중단될 때까지 계속 실행됩니다. 이 0이면 duration_in_milliseconds 이 매개 변수가 무시됩니다.

반환 값

이 함수 호출의 결과를 나타내는 EventLoop_Run_Result 값을 반환합니다.

발언

애플리케이션은 를 호출 EventLoop_Run(el, -1, false) 하여 호출 스레드의 제어를 에 EventLoop전달할 수 있습니다.

애플리케이션이 를 호출 EventLoop_Run(el, -1, true)하는 경우 루프는 첫 번째 이벤트가 준비될 때까지 차단하고 기다린 다음 이벤트를 처리하고 반환합니다.

애플리케이션은 EventLoop_Stop 호출하여 더 일찍 종료 EventLoop_Run 할 수 있습니다.