Como você implementaria um loop de eventos básico?

Se você trabalhou com kits de ferramentas da GUI, sabe que existe um loop de eventos / loop principal que deve ser executado depois que tudo estiver pronto, e que manterá o aplicativo ativo e responsivo a diferentes eventos. Por exemplo, para Qt, você faria isso em main ():

int main() {
    QApplication app(argc, argv);
    // init code
    return app.exec();
}

Nesse caso, app.exec () é o loop principal do aplicativ

A maneira óbvia de implementar esse tipo de loop seria:

void exec() {
    while (1) {
        process_events(); // create a thread for each new event (possibly?)
    }
}

Mas isso limita a CPU a 100% e é praticamente inútil. Agora, como posso implementar um loop de eventos que seja responsivo sem consumir a CPU por complet

s respostas @ são apreciadas em Python e / ou C ++. Obrigado

ota de rodapé: para fins de aprendizado, implementarei meus próprios sinais / slots e os utilizaria para gerar eventos personalizados (por exemplo,go_forward_event(steps)). Mas se você souber como posso usar eventos do sistema manualmente, também gostaria de saber sobre isso.

questionAnswers(4)

yourAnswerToTheQuestion