Problem z przerwaniem pętli while [C++]

0

Witam. Nie wiem czy taki temat już był, albowiem mój problem trudno sformułować w kilku wyrazach przeszukując forum.
Mój problem dotyczy pętli while (chociaż równie dobrze mogła by to być jakakolwiek inna pętla). Mianowice, robię program będący metronomem. Wszystkie bipnięcia są zawarte we wspomnianej pętli. Jednak jak zrobić aby móc na bieŻąco (Boże, widzisz takie błędy i nie grzmisz) przerwać pętle nie przerywając bipnięć? Jako że nie mogę użyć żadnego cin ani getch, chwilowo używam limitu bipnięć. Wygląda to tak:

    
while (count != 200)
    {
          Beep(1000,30);
          Sleep(60000/tempo);
          count += 1;
    }

Z góry dziękuję za pomoc (jeśli oczywiście rozwiązanie którego oczekuję jest możliwe).</cpp>

0

I jeszcze jeden problem dotyczący metronomu (btw sory za double post, ale nie jestem zarejstrowany więc nie mogę edytować postów) - mimo że czas trwania czas pomiędzy kolejnymi bipnięciami jest równy, to czasami się przedłuża o kilkanaście/kilkadziesiąt milisekund (tak wychodzi porównując do metronom,u online). Przy zwykłym programie to nie miałoby znaczenia, ale to jest metronom i odstępy są BARDZO ważne.

0

Wsadź bipanie w nowy wątek o wysokim priorytecie. I w warunku pętli sprawdzaj coś takiego:

while (! koniecBipniec) {
...
}

i gdy chcesz zastopowac te petle, to w glownym watku zmieniasz wartosc koniecBipniec na true.

0

Mówiąc wątek masz na myśli funkcję?

0

Mówiąc wątek pewnie ma na myśli wątek...

1 użytkowników online, w tym zalogowanych: 0, gości: 1