qthread 예제

위의 예제는 이해하기 쉽지만 작업자 스레드에 이벤트 시스템(또는 큐에 대기 된 연결)이 도입될 때 그렇게 직관적이지 는 않습니다. 우아함을 제쳐두고, 공식 문서에서 수행 처럼 하위 클래스 칭 Qthread의 단점은 무엇입니까 (예를 들어 충돌? 메모리 관리? 끔찍한 부끄러운 종료?) 난 그냥 Qt를 배우고 내 경험이 방법이 작동하는 한. 그리고 MyWorker 클래스는 예제에 있는 코드와 거의 동일합니다. 시작되면 process()를 호출합니다. 이 솔루션을 사용하면 worker 하위 클래스의 실행 메서드는 일반적으로 작업자의 주요 메서드(예제에서 “프로세스”라고 함)입니다. 인스턴스화 컨텍스트에서 다른 QThread 선호도(QObject::moveToThread)로 QObject를 푸시하는 대안은 대부분의 경우 적절한 솔루션에도 제한이 있습니다. 예를 들어 응용 프로그램이 QCoreApplication(또는 QApplication 하위 클래스)을 사용하지 않는 경우를 예로 들 수 있습니다. 앞서 언급했듯이 각 프로그램은 시작될 때 하나의 스레드를 가합니다. 이 스레드를 “주 스레드”(Qt 응용 프로그램의 “GUI 스레드”라고도 함)라고 합니다. Qt GUI는 이 스레드에서 실행되어야 합니다. 모든 위젯과 QPixmap과 같은 여러 관련 클래스는 보조 스레드에서 작동하지 않습니다. 보조 스레드는 일반적으로 주 스레드에서 처리 작업을 오프로드하는 데 사용되기 때문에 “작업자 스레드”라고 합니다.

안녕하세요, 피드백 주셔서 감사합니다. 예, 이것은 몇 가지 고려 사항이 주어졌습니다. 결국 그것은 정적 공장에 대 한 선택, 기본적으로 Qt의 나머지와 일관성 이유로, Qt와 std::thread 와 최대 호환성 사이의 타협을 찾을 수 있도록 노력 합니다. 예를 들어, 당신의 아주 예에서, 거 대 한 놀라운 요인이 있을 것 이다: “this” 인수 생성자 부모 개체에 대 한, 또는 그것은 인수 새 스레드를 시작할 때 새 함수에 전달 될? 사람들은 전자를 기대할 것이지만, 대신 후자입니다. 따라서, 그것은 그것에서 멀리하기로 결정했다. 이 일을 조금 명확히 희망

カテゴリー: 未分類   パーマリンク

コメントは受け付けていません。