회원 함수가 VideoCapture 및 VideoWrite 인 클래스가있었습니다. 두 프로세스를 병렬로 수행하기 위해 두 개의 스레드를 실행하려고합니다. 다른 스레드를 실행할 때마다 매번 클래스 객체를 만들어야한다는 것을 알았습니다. 매번 다른 클래스 개체를 만들지 않는 방법이 있습니까?cpp에서 QThread를 사용하여 하나의 객체를 사용하여 같은 클래스의 두 스레드를 실행하는 방법은 무엇입니까?
1
A
답변
2
실제로 두 개의 다른 스레드에서 클래스를 실행할 수 없습니다. 일반적으로 클래스 인스턴스를 스레드로 옮깁니다. 아마도 두 개의 분리 된 클래스, 독자/캡처 클래스 및 작성자 클래스를 만들고 각각을 자신의 스레드에 넣는 것이 좋습니다. 이것은 매우 간단하고 효과적입니다.
클래스를 함께 유지하려는 경우 QtConcurrent를 사용하여 클래스 작동 방식에 따라이를 구현할 수 있습니다. qtconcurrent에서 캡처/쓰기 함수 (또는 heavy-on-processor 함수)를 실행하여 대량 작업을 수행 할 수 있습니다. 이벤트 처리/이벤트 루프는 주 스레드에서만 수행 할 수 있습니다. 이것을 메인 스레드에서 완전히 멀리 이동하십시오). 참조 :
run member function qith QtConcurrent
및
을