타이머가 만료 될 때마다 udp 패킷을 보내는 스레드가 있습니다. 타이머 간격은 20 초입니다. send_data 함수에 시간 초과 신호를 연결했습니다. 함수에서 일부 작업을 수행하고 패킷을 보내고 있습니다. udp. 함수에서 함수를 소비하는 시간을 알기 위해 타이머를 추가했습니다.UTp QT 타이머 신호에 데이터 그램을 작성하십시오.
QTimer timer;
timer.setInterval(20);
connect(timer,signal(timeout()),slot(send_data());
send_data(){
QElapsedTimer t;
t.start();
mysocket.writedatagram();//Do some work and send data via Udp
cout<<t.elapsed()<<endl;
}
내가 경과 시간을 인쇄하고, 시간이 때로는 7MS이다 나는 그것이 정상입니다 생각하지만, 때때로 저를 오는 0 이상해은 전송 UDP 패킷에 관련된 문제입니다 생각하는 기능을 수행합니다 제 시간에 돌아 오지 않습니까? 문제는 무엇입니까?
당신은'send_data'에서'QElapsedTimer'를 사용했다는 것을 의미한다고 생각합니까? 또한'send_data'의 본문을 게시 할 수 있습니까? 우리는 당신이 그것없이 얻는 결과를 설명 할 수 없습니다. –
@RA 감사합니다. 편집했습니다. – barp