...
Code Block |
---|
#include "saie.h" #include <QDebug> Saie::Saie(QObject *parent) : QThread(parent) { Testiarvo=0; runTimer.start(); uiTimer.start(); SaieStop=false; jaksoaika=1; ui_paivitysaika=10; } // tällä saadaan saie pysaytettya void Saie::pysayta() { SaieStop=true; } void Saie::AsetaTestiarvo(int arvo) { //suojataan mutexilla sijoitus atomiseksi operaatioksi eli jos funktiossa on useimpia //rivejä suoritattavaa ohjelmaa ne kaikki toteutetaan ilman, että //toinen säie pääsisi väliin QMutexLocker locer(&mutex); Testiarvo=arvo; } void Saie::run() { //tässä syntyy toinen säie int arvo; QString msg; forever { if (runTimer.elapsed() > jaksoaika)//talla maarataan saikeen paivitysvali { runTimer.restart(); Testiarvo++; Testiarvo=Testiarvo+3; if(uiTimer.elapsed()>ui_paivitysaika)//talla maarataan kayttoliittyman paivitysvali { uiTimer.restart(); emit PaivitaUi(Testiarvo); msg.setNum(Testiarvo); qDebug()<< msg;//debug informaatiota appöication output ikkunaan } } if(SaieStop==true){break;} } SaieStop=false; } |
...