Freigeben über


EventLoop_Run-Funktion

Header: #include <applibs/eventloop.h>

Führt einen EventLoop aus und verteilt ausstehende Ereignisse im Ausführungsthread des Aufrufers.

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

Parameter

  • el Der auszuführende EventLoop.

  • duration_in_milliseconds Die Dauer der Ausführung der Ereignisschleife. Wenn der Wert 0 (null) ist, verarbeitet die Schleife ein Ereignis, wenn es bereit ist und sofort unterbrochen wird, unabhängig vom Wert des process_one_event Parameters. Wenn größer als 0 (null) wird die Schleife für die angegebene Dauer ausgeführt, es sei denn, sie wird unterbrochen. Wenn kleiner als 0 (null) wird die Schleife so lange ausgeführt, bis sie unterbrochen wird. Weitere Bedingungen finden Sie in der EventLoop_Stop-Funktion und im process_one_event Parameter.

  • process_one_event Gibt an, ob die Schleife unterbrochen werden soll, nachdem das erste Ereignis verarbeitet wurde. False gibt an, dass die Schleife für die vom duration_in_milliseconds Parameter angegebene Dauer oder bis sie durch EventLoop_Stop unterbrochen wird. Dieser Parameter wird ignoriert, wenn duration_in_milliseconds null ist.

Rückgabewert

Gibt einen EventLoop_Run_Result Wert zurück, der die Ergebnisse dieses Funktionsaufrufs angibt.

Bemerkungen

Eine Anwendung kann aufrufen EventLoop_Run(el, -1, false) , um die Steuerung des aufrufenden Threads an den EventLoopzu übergeben.

Wenn die Anwendung aufruft EventLoop_Run(el, -1, true), blockiert die Schleife und wartet, bis das erste Ereignis bereit ist. Anschließend wird das Ereignis verarbeitet und zurückgegeben.

Eine Anwendung kann EventLoop_Stop aufrufen, um sie früher zu beenden EventLoop_Run .