타이밍 구현에 문제가 있습니다. 내가하고 싶은 일은 다음을 실행하는 것입니다 :C++ 타이머 문제
//relay 1 power cycle
void MainWindow::relay1PCycle()
{
relay1High();
while (true){
QTimer::singleShot(750, this, SLOT(relay1Low()));
QTimer::singleShot(750, this, SLOT(relay1High()));
}
}
버튼을 누르고있는 동안.
//power cycle button
void MainWindow::on_pushButton_3_toggled(bool checked)
{
if (checked){
//run relay1PCycle as a thread.
}
else{
//Terminate relay1PCycle thread.
}
}
그러나 지금까지 시도한 모든 것이 실패했습니다.
이 문제를 해결하는 올바른 방법은 무엇입니까?
감사
코드 작성시 스레드가 생성되지 않습니다. 'std :: thread','std :: async' 또는'QThread'를 대신 사용해보십시오. – nwp
슬롯 생성이 차단되어 있지 않으므로 while 코드가 여러 타이머를 만듭니다. – eyllanesc
@nwp 나는 std :: thread를 이렇게 시도했다 : std :: thread t1 (relay1PCycle); 그리고 난 "정적이 아닌 멤버 함수의 잘못된 사용"오류가 발생 Qthread 나는 전혀 얻을 수 없습니다. – Aesgarth