단추 및 로그 도구로 양식을 구현해야하며 단추를 누르면 다른 스레드에서 긴 작업이 시작되어야합니다.Qt : 다른 스레드의 이벤트 루프에서 긴 작업을 수행하는 것이 맞습니까
프로세스 세부 정보는 로그에 표시되어야합니다.
두 작업을 동시에 시작해서는 안됩니다.
내가 생각 해요 방법 : 자신의 이벤트 루프합니다 (QThread
의 생성자 물론 전화 moveToThread(this)
)와 QThread
의 서브 클래스를 생성하고,이 스레드의 슬롯 doLongJob()
에 QButton
의 신호를 연결합니다.
소리가 좋은가요? 아니면 일반적으로 잘못 되었나요? 다른 방법 : 말하자면, 사용자가 버튼을 누를 때마다 새 스레드를 생성하십시오. 더 나빠질 것 같습니다.
아주 일반적인 일을하는 몇 가지 모범 사례가 있습니까? 제게 제안 해주세요.
일반적으로 [QThread를 하위 클래스로 만들고 싶지 않습니다] (http://mayaposch.wordpress.com/2011/11/01/how-to-really-truly-use-qthreads-the-fulplating/) , 그러나 그것 이외의 신호와 슬롯으로 물건을 연결하는 것은 괜찮습니다. – Bart
@Bart, QThread를 올바르게 사용하는 방법에 대한 내 눈을 열어 주셔서 감사합니다. 나는 Qt가 오도 된 오해의 소지가있는 것처럼 잘 구성된 프레임 워크를 꽤 상상하게됩니다. 그리고 실제로, 나는 QThread의 하위 클래스들로 많은 예제들을 보았습니다. –
'QThread'를 서브 클래 싱하는 것은 세상의 끝이 아니지만 메모리 관리가 더 어렵고, 당신이해야 할 점이 많이 있습니다. 인식. – phyatt