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?)
}
}
しかし、これは CPU を 100% に制限するため、実際には役に立ちません。では、CPU を完全に消費することなく、応答性の高いイベント ループを実装するにはどうすればよいでしょうか?
回答は、Python および/または C++ で高く評価されます。ありがとう。
脚注: 学習のために、独自のシグナル/スロットを実装し、それらを使用してカスタム イベントを生成します (例: go_forward_event(steps)
)。しかし、システム イベントを手動で使用する方法を知っている場合は、それについても知りたいです。