Если вы работали с инструментами gui, вы знаете, что существует цикл-цикл/основной цикл, который должен выполняться после того, как все будет сделано, и это будет поддерживать приложение и реагировать на различные события. Например, для Qt вы сделаете это в main():
int main() {
QApplication app(argc, argv);
// init code
return app.exec();
}
В этом случае app.exec() является основным циклом приложения.
Очевидным способом реализации такого типа цикла будет:
void exec() {
while (1) {
process_events(); // create a thread for each new event (possibly?)
}
}
Но это закрывает процессор до 100% и практически бесполезно. Теперь, как я могу реализовать такой цикл событий, который реагирует, не потребляя процессор вообще?
Ответы приветствуются в Python и/или С++. Спасибо.
Сноска: для обучения я буду использовать свои собственные сигналы/слоты, и я буду использовать их для создания пользовательских событий (например, go_forward_event(steps)
). Но если вы знаете, как я могу использовать системные события вручную, я тоже хотел бы узнать об этом.