001
17.03.2004, 09:29 Uhr
RHBaum
|
Was verstehst du genau unter einem Timer ?
Die windows Funktion SetTimer ?
Die macht nix anderes, als dir mittels der windowsproc (Nachrichtenbehandlung) in regelmaessigen Abstaenden ne Message an das Fenster zu schicken. Die Abarbeitung dieser Message laeuft natuerlich wieder in deinem Hautthread. Das hat Vor und nachteile: - Wenn du den Haupthread beschaeftigst, wird deine Behandlung auf die timer Message ned gemacht. - Timer Nachrichten stapeln sich nicht also wenn mehr als 1 Zyklus Last hast, werden ereignisse ignoriert. - du kannst mit deiner Behandlungsroutine auf die timer nachricht dein system lahmlegen, ohne probleme :-) Das zu synchronisieren ist manchmal schwieriger wie eigene threads zu schreiben. + Du hast keinen konkurierenden Zugriff auf variablen !!!
Richtige Timer funktionieren ohne Threads nicht ! Die WM_TIMER Sache ist auch nur eine Kruecke ! Weil sie nutzt nen schon vorhanden anderen Thread (winproc) fuers timing ... Normal hat jedes Fenster unter WIndows welches die Nachrichtenbehandlung implementiert auch nen eigenen Thread.
Threads sind aber auch nur eine ueberdimensionale Zeitscheibenloesung, aus der Sicht des BS. Unter Win16 gabs eh nur zeitscheiben ... :p Wenn in deiner Timerfunktion den Prozess fuer die anderen Ereignisse abgibst, ist das am ende auch ne simple Zeitscheibenfunktionalitaet. Muss halt nur jede funktion in deinem Haupthread untertuetzen.
Threads sind auch dafuer da, dem Programmierer das leben zu erleichtern ... warum darfst keine eigenen Threads machen ?
Ciao .. |