fh_study
Erfahrenes Mitglied
Hallo
bin gerade dabei ein Mensch Ärgere Dich Nicht Spiel (Projektarbeit für's Studium) in MSVC++ zu schreiben. So weit funktioniert auch schon alles wunderbar. Das Würfeln und das setzen der Spielfiguren wird für jeden Spieler in einem eigenen Thread erledigt.
Nun habe ich jedoch folgendes Problem: Wenn der "Computer" am Zug ist wird auch für ihn ein Thread zum Würfeln geöffnet. Nach dem Würfeln sendet Thread eine Nachricht (SendMessage(WM_MYMSG, (UINT) this) und beendet dann den Thread. Diese Nachricht ruft die Funktion OnMyMsg auf. Dort wird das Spielfeld neu gezeichnet und überprüft, ob der "Computer" wieder dran ist. Wenn ja wird wieder ein Thread aufgerufen in dem dann berechnet wird was und wohin er setzt. Allerdings geht das anscheinend so schnell, das schon ein neuer Thread geöffnet wird, bevor der alte Thread beendet ist. Diese rufen sich dann immer gegenseitig auf und das ergibt eine Endlosschleife.
Ich bin also quasi auf der Suche nach einer Funktion, die überprüft, ob der Thread beendet ist und wenn nicht auf das beenden des Thread wartet bzw. eine Art OnEndThread (falls es so etwas gibt).
Hoffe mir kann jemand helfen.
bin gerade dabei ein Mensch Ärgere Dich Nicht Spiel (Projektarbeit für's Studium) in MSVC++ zu schreiben. So weit funktioniert auch schon alles wunderbar. Das Würfeln und das setzen der Spielfiguren wird für jeden Spieler in einem eigenen Thread erledigt.
Nun habe ich jedoch folgendes Problem: Wenn der "Computer" am Zug ist wird auch für ihn ein Thread zum Würfeln geöffnet. Nach dem Würfeln sendet Thread eine Nachricht (SendMessage(WM_MYMSG, (UINT) this) und beendet dann den Thread. Diese Nachricht ruft die Funktion OnMyMsg auf. Dort wird das Spielfeld neu gezeichnet und überprüft, ob der "Computer" wieder dran ist. Wenn ja wird wieder ein Thread aufgerufen in dem dann berechnet wird was und wohin er setzt. Allerdings geht das anscheinend so schnell, das schon ein neuer Thread geöffnet wird, bevor der alte Thread beendet ist. Diese rufen sich dann immer gegenseitig auf und das ergibt eine Endlosschleife.
Ich bin also quasi auf der Suche nach einer Funktion, die überprüft, ob der Thread beendet ist und wenn nicht auf das beenden des Thread wartet bzw. eine Art OnEndThread (falls es so etwas gibt).
Hoffe mir kann jemand helfen.