로컬 네트워크에서 ARP 검사를 수행하는 Qt 응용 프로그램을 설계하고 있습니다. 나는 (의사 코드) 여기 내 스레드 클래스를 가지고 : 나는 슬립 기능은 일정 시간에 대한 자신의 발신자 차단합니다 알고하나의 QThread 객체 내의 슬롯 기능을 동시에 실행할 수 있습니까?
class worker:public QThread
{
run()
{
.......some code;
.......some code;
}
slot function1()
{
.......some code;
sleep(5);
.......some code;
}
slot function2()
{
.......some code;
.......some code;
}
}
하지만, 윌 블록 다른 두 위의 기능 1에서 절전 기능뿐만 아니라 때문에 그들은 하나의 QThread 객체에 속해 있습니까? Function1과 function2는 연결된 신호에 의해서만 트리거 된 슬롯입니다.
감사합니다.
'worker-> moveToThread (thread);'어딘가 필요하지 않니? 그렇지 않으면'WorkerObject :: DoWork'에 대한'QThread :: started' 신호 연결이'worker '가 여전히 연관되어있는 메인 스레드로 마샬링 된 상태로 되돌아 가지 않을까요? 아니면 Qt 5가 내가 모르는 것을 바 꾸었습니까? –
@MichaelBurr, 죄송합니다! 물론, 내 실수. 오류를 지적 해 주셔서 감사합니다. O) – TheDarkKnight
스레드 내부에서 신호가 실행 중이기 때문에 서브 클래스 QThread 접근 방식을 사용하고 있습니다. 내 작업자 개체는 스레드 내부에도 생성됩니다. – QtFan