Witam wszystkich,
Napisałem aplikację (oczywiście na podstawie tutoriala na YT, bo wątki dopiero ruszyłem), która umożliwia uruchomienie wątku po naciśnięciu buttona, zatrzymanie go po naciśnięciu innego, jednak chciałbym jeszcze dodać funkcjonalność wsztrzymania działania wątku - zapauzowania go (o ile jest taka możliwość).
W skrócie, aplikacja ta odlicza od 0 do 999 co 0.1 sekundy a wyniki odliczania wyświetla w label.
for(int i=0; i<1000; i++)
{
if(this->Stop) break;
emit NumberChanged(i);
this->msleep(100);
}
Stop to flaga, jeśli przyjmie wartość true (po naciśnięciu przycisku 'Zatrzymaj') to przerwie działanie pętli.
Co do pauzowania, mam pewien pomysł, ale zastanawiam się, czy nie można tego zrobić inaczej (lepiej), czy nie ma do tego specjalnej metody.
for(int i=0; i<1000; i++)
{
if(this->Stop) break;
while(this->Pause);
emit NumberChanged(i);
this->msleep(100);
}
Oczywiście i tutaj Pause jest flagą, domyślnie ustawioną na 'false', po naciśnięcu przycisku ustawiana jest na 'true' i wtedy leci pętla w nieskończoność aż użytkownik naciśnie przycisk 'Start', gdzie po tym zdarzeniu flaga ta zostanie ustawiona ponownie na 'false' i przerwie działanie pętli while.
Pozdrawiam.