Sto cercando di capire cos'è un loop di eventi. Spesso la spiegazione è che in un ciclo di eventi, fai qualcosa finché non ti viene notificato che si è verificato un evento. Quindi gestisci l'evento e continua a fare ciò che stavi facendo in precedenza.
Per mappare la definizione di cui sopra con un esempio. Ho un server che 'ascolta' in un ciclo di eventi, e quando viene rilevata una connessione socket, i dati da esso vengono letti e visualizzati, dopo di che il server riprende / inizia ad ascoltare come faceva prima.
Tuttavia, questo evento sta accadendo e noi che riceviamo la notifica "proprio così" sono molto per me da gestire. Puoi dire: "Non è" così "devi registrare un listener di eventi". Ma cos'è un listener di eventi ma una funzione che per qualche motivo non sta tornando. È nel proprio ciclo, in attesa di essere avvisato quando si verifica un evento? Il listener di eventi dovrebbe anche registrare un listener di eventi? Dove finisce?
Gli eventi sono una bella astrazione con cui lavorare, ma solo un'astrazione. Credo che alla fine il sondaggio sia inevitabile. Forse non lo stiamo facendo nel nostro codice, ma i livelli più bassi (l'implementazione del linguaggio di programmazione o il sistema operativo) lo stanno facendo per noi.
In pratica si tratta del seguente pseudo-codice che sta girando da qualche parte abbastanza basso da non risultare in attesa:
while(True):
do stuff
check if event has happened (poll)
do other stuff
Questa è la mia comprensione dell'intera idea e mi piacerebbe sentire se è corretta. Sono aperto ad accettare che l'intera idea sia fondamentalmente sbagliata, nel qual caso vorrei la spiegazione corretta.