[c++] Timer - pomoc przy zastosowania


(Gawamawa1) #1

Witam, mam problem z timerem, przeczytałem już pare poradników ale w żadnym nie był on dostatecznie opisany bym mógł poradzić sobie z moim problemem, otóż chce zrobić funkcje która będzie działać np. przez 10 minut i w niej ma uruchamiać się pewna funkcja co 10 sek inna co 20 inna co 30 sek i tak przez 10 minut. Mógłby ktoś poradzić jak to zrobić ? próbowałem łączyć te timery ale nic z tego.

I jak przesłać do timera strukturę z wskaźnikami do moich funkcjami by były w środku niej dostepne ?


(Konrad13op) #2

żeby dziłało tak jak rozumiem że napisałeś musisz uruchomieć trzy watki z których każdy z nich po uruchomieniu dziła przez 10 min i usypia się na odpowiedni dla niego czas 10/20/30 s minus czas wykonania funkcji. Albo możesz użyć czegoś takiego jak boost asio gdzie są zaimplementowane takie właśnie timery które wykonują sie co podany czas. Jeśli na watkach to wszytsko zależy jaki system każdy ma odrobine inne rpzekazywanie parametrów do wątku. Lub również można użyć boost thread. Jeśli nie ma być na wątkach i funkcje nie muszą być dokłądnie co podany czas (z małym opóźnieniem) to możn watak budzić co sekunde i sprawdzać jaki był ostatni czas wykonania każdej z funkcji, jeśli minął odpowiedni dla dnaej funkcji to ja wykonać i wpisać czas ostatniego wykonania.


(Gawamawa1) #3

Rozwiązałem już ten problem jednak funckaj KillTimer nie zakańcza timera i nie moge go w ogóle wyłączyć, co może być tego przyczyną? nawet włożenie timera do pętli nic nie daje tzn. najpierw zrobić się cała pętla bez timerów(chodź są w środku niej) a potem dopiero zaczyna działać timer i tak bez końca