Sleep zatrzymuje cały program

0

Mam w programie dwie zapętlone funkcje.

Pseudokod:

PierwszaFunkcja()
{
    // instrukcje;
}
DrugaFunkcja()
{
    // instrukcje;
    Sleep(1000);
}
int main()
{
    while (1>0)
    {
        PierwszaFunkcja();
        DrugaFunkcja();
    }
}

Chciałbym aby druga funkcja wykonywała się co sekundę, podczas gdy pierwsza funkcja wykonuje się cały czas bez żadnych opóźnień, ale niestety Sleep() zatrzymuje cały program - czyli stosując Sleep w drugiej funkcji spowalnia mi to też wykonywanie się pierwszej funkcji.

Jak dojść do rozwiązania, o czym poczytać, jakie keywordy googlować? Jedno z rozwiązań jakie przychodzi mi do głowy to podzielić te dwie funkcje na dwa różne wątki, ale może jest prostsze rozwiązanie?

Dzięki :]

2

Opcji jest kilka.

  1. Korzystaj z jakiegoś eventloopa zamiast samemu pisać pętlę, a wraz z nim z jakiegoś timera. Polecam.
  2. Wewnątrz DrugaFunkcja sprawdzaj kiedy ostatni raz ją wykonałeś (<chrono>), i jeśli mniej niż tyle co chcesz, to od razu wychodź. Polecam.
  3. Wywołuj funkcje w osobnych wątkach. To najłatwiejsze do zrobienia i najtrudniejsze do zrobienia poprawnie, a potem utrzymania. Nie polecam.

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