Diciamo che ho un programma che consiste in un ciclo di eventi principale. Il ciclo degli eventi dovrebbe verificare le attività e se ne esiste uno, deve essere elaborato. L'interfaccia utente è costituita da una GUI con pulsanti, per ognuno dei quali può essere definita una funzione di callback quando viene premuto.
Usando più thread, posso semplicemente eseguire il ciclo degli eventi in un thread separato. Quando viene premuto un pulsante, inserisco un'attività in una coda che è condivisa dall'interfaccia utente e dal thread dell'evento. Il thread di eventi quindi consuma ed esegue l'attività.
La mia domanda è come si realizza questo comportamento in un'applicazione a thread singolo o in un linguaggio che non supporta il multithreading. La mia idea è di eseguire il polling per l'interazione dell'utente, ma come funziona in detta GUI in cui una pressione di un pulsante può essere registrata solo dall'invocazione di un callback specificato?