Pętla zdarzeń to pętla, która obsługuje/zajmuje się zdarzeniami. .
Zdarzenie to coś, co pojawia się w systemie, w którym niektóre części kodu może być zainteresowany w
Na początku wszystkie komponenty zarejestrować na imprezy, a po tym, zdarzenie init opalane:
ja po prostu dostarczanie surowca kod tutaj:
listeners = [component1, component2, component3]
eventqueue.add(InitEvent())
while True:
event = eventqueue.pop()
for listener in listeners:
listener.handle_event(event)
w jaki sposób eventqueue
jest realizowany i jakie hierarchia Event()
klasa wygląda pozostawiamy jako ćwiczenie dla czytelnika. Zwróć uwagę na użycie metody threading.(R)Lock
itp. Dla metody .pop()
.
Dodatkowo, możesz mieć osobne listy detektorów dla każdego typu zdarzenia. Zdarzenie może więc zostać "zwolnione" przez wywołanie go (lub jego metody .fire()
) i posiadać mechanizm identyfikujący wszystkich własnych i rodzicielskich słuchaczy w celu poinformowania ich o zdarzeniu.
W każdym przypadku słuchacze mogą wtedy samodzielnie zdecydować, co zrobić i zgodnie z wydarzeniem.
http://stackoverflow.com/questions/6812397/event-loop-implementation-for-python-3 – avasal
Musisz podać więcej kontekstu. Czy mówisz o programowaniu systemu, programowaniu gniazd, symulacji zdarzeń dyskretnych? –