Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

8.1: Zeitsteuerung in einem Thread

Uploader:Redakteurnemored
Datum/Zeit:09.10.2011 23:22:24
Hinweis: Dieser Quelltext ist Bestandteil des Projekts OpenBook: 2D-Spieleprogrammierung, zu dem es auf FreeBASIC-Portal.de eine Projektseite gibt.

' *** CODE 8.1: Zeitsteuerung in einem Thread

DIM SHARED AS INTEGER terminate = 0
DIM SHARED mutex AS ANY PTR
mutex = MUTEXCREATE

SUB punktethread
  DIM AS INTEGER endetest
  DO                               ' jede Sekunde einen Punkt ausgeben
    MUTEXLOCK mutex
    endetest = terminate
    MUTEXUNLOCK mutex
    IF endetest = 1 THEN EXIT DO   ' Programm wurde terminiert
    PRINT ".";
    SLEEP 1000, 1
  LOOP
END SUB

' Thread starten
DIM AS ANY PTR thread = THREADCREATE(CAST(ANY PTR,@punktethread))
DIM AS STRING taste

DO
  taste = INKEY
  IF taste = CHR(27) THEN
    EXIT DO                              ' Programmende bei Eingabe von ESC
  ELSEIF taste <> "" THEN
    PRINT taste;                         ' Benutzereingabe anzeigen
  END IF
  SLEEP 1                                ' Pause fuer den Prozessor
LOOP

MUTEXLOCK mutex
terminate = 1                            ' punktethread abbrechen
MUTEXUNLOCK mutex
THREADWAIT thread                        ' warten, bis punktethread endet
MUTEXDESTROY mutex