Krzysztof Mossakowski
Programowanie w środowisku Windows
2003 - Zadania
Procesy, wątki
Wersja A
plik z wzorem programu
Okno główne:
500 poziomych kresek rysowanych od lewej krawędzi
długość każdej kreski odpowiada wartości odpowiedniego elementu tablicy
menu
File
Start working (Ctrl+F1) - tworzy nowe wątki lub budzi istniejące
Stop working (Ctrl+F2) - zatrzymuje wykonywanie obu wątków
Generate data - generuje losowe dane do tablicy z zakresu 0-199
Exit - kończy działanie programu
Działanie programu:
polecenie
start working
tworzy 2 wątki (jeśli nie istnieją)
wątek pierwszy sortuje tablice 500 elementów metodą prostego wyboru (selection sort)
efekty pracy muszą na bieżąco być widoczne w oknie głównym
kod rysujący znajduje się obsłudze WM_PAINT okna głównego
podczas rysowania sortowanie powinno być wstrzymane
proszę wprowadzić opóźnienie 10 ms w pętli głównej sortowania - aby umożliwić oglądanie postępów
po posortowaniu wątek kończy działanie
drugi wątek informuje o pracy pierwszego przez aminację w tytule okna
animacja jest sekwencyjnym wyświetlaniem znaków | , / , - , \
drugi wątek kończy działanie w momencie zakończenia pierwszego wątku
do zasygnalizowania drugiemu wątkowi zakończenia pierwszego wątku nie wolno używać żadnych zmiennych, należy wykorzystać funkcję oczekiwania
program nie może zabierać całego zasobu procesora
Przydatne funkcje:
CreateThread()
WaitForSingleObject()
SendNotifyMessage()
Sleep()
SuspendThread()
ResumeThread()