Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Frage zum Timer

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
17.03.2004, 08:57 Uhr
~Jürgen
Gast


Hi,
ich rufe im Konstruktor einer Dialoganwendung eine Funktion auf
in der ein Timer gesetzt wird, der alle 20 Minuten eine andere Funktion aufruft.

Meine Frage:
Wie wird dann die eigentliche Applikation darauf reagieren ?
Kann der Benutzer dann ganz normal weiter arbeiten oder ist mit dem Timer
dann auch die ganze Anwendung blockiert ?
Gibt evtl. noch andere Möglichkeiten für einen zeitgesteuerten Funktionsaufruf ? (Threads darf ich nicht einsetzen)

Jürgen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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 ..
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: