gui 툴킷으로 작업 한 적이 있다면, 모든 것이 완료된 후에 실행해야하는 이벤트 루프/메인 루프가 있으며, 이는 애플리케이션을 계속 유지하면서 다른 이벤트에 응답 할 수 있음을 알고 있습니다. 예를 들어, Qt를 들어, 당신이 이런 짓을 했을까 주() :이 경우, app.exec()는 응용 프로그램의 주 루프입니다 기본 이벤트 루프는 어떻게 구현합니까?
int main() {
QApplication app(argc, argv);
// init code
return app.exec();
}
.
확실한 방법
는 것이다 루프 이런 종류의 구현 :void exec() {
while (1) {
process_events(); // create a thread for each new event (possibly?)
}
}
그러나 이것은 100 %로 CPU 모자와 practicaly 쓸모가 없다. 자, 어떻게 CPU를 모두 먹지 않고 반응하는 이벤트 루프를 구현할 수 있습니까?
답변은 Python 및/또는 C++에서 높이 평가됩니다. 감사.
각주 : 학습을 위해 자체 시그널/슬롯을 구현하고이를 사용하여 맞춤 이벤트 (예 : go_forward_event(steps)
)를 생성합니다. 그러나 수동으로 시스템 이벤트를 사용할 수있는 방법을 알고 있다면 그 사실을 알고 싶습니다.
난 당신이 Qt의 소스 코드에 탐구와()가 간부로 일을 정확하게 볼 수 있다고 생각합니다. 아마 당신에게 좋은 지적을 줄 것입니다. – JimDaniel