Krzysztof Mossakowski
Programowanie w środowisku Windows
2004 - Zadania
Procesy, wątki
Wersja A
Wzór programu
Działanie programu:
Okno główne:
dwa "pociągi" - zielony poruszający się w poziomie, czerwony poruszający się w pionie
"pociągi" poruszają się jak w programie przykładowym
długości pociągów są losowe, prędkości również (ale stałe)
tory obu pociągów przechodzą przez środek obszaru klienta
oba pociągi nie mogą jednocześnie poruszać się nad punktem środka obszaru klienta
oba pociągi można zatrzymywać i wznawiać ich ruch (osobno, niezależnie od siebie)
szczegóły implementcji:
każdy pociąg jest obsługiwany przez osobny wątek
kod rysujący znajduje się w procedurze okna głównego, należy wyeliminować efekt mrugania
do synchronizacji ruchu należy użyć semafora lub mutexu
zatrzymanie pociągu oznacza zatrzymanie jego wątku
naciśnięcie lewego przycisku myszy - zatrzymanie/wznowienie ruchu zielonego "pociągu"
naciśnięcie prawego przycisku myszy - zatrzymanie/wznowienie ruchu czerwonego "pociągu"
należy zablokować możliwość zmiany rozmiaru okna
przed zakończeniem pracy programu należy mieć pewność zakończenia pracy wątków (należy wykorzystać funkcję oczekiwania)
w programie nie wolno wykorzystywać timera (SetTimer/WM_TIMER)
nie wolno stosować
busy waiting
Wskazówki:
CreateThread
CreateMutex, CreateSemaphore
WaitForSingleObject
ResumeThread, SuspendThread