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.