[WinApi] Thread oder Timer?

Tobias K.

Erfahrenes Mitglied
moin


Also ich schreibe gerade ein Programm das meine Terrarien überwacht und verschiedene Sachen steuern kann (Temperatur, Feuchtigkeit, Wassersprühen und und und) dazu muss ich ziemlich oft Werte, von einem USB-Interface, abfragen und je nach Wert werden bestimmte Funktionen ausgeführt.

Zur Zeit benutze ich dafür noch nen Timer, aber wäre ein Thread vielleicht besser? Wenn ja, warum bzw. warum nicht?


mfg
umbrasaxum
 
Definiere "oft". Der Windows-Timer geht bis zu 55ms genau, aber nur im Idealfall. Garantiert ist bei WM_TIMER lediglich, dass der Timer nicht öfter als die angegebene Zeitspanne kommt. Dadurch, dass er über die MessagePump läuft, wird er aber schon mal verzögert, je nachdem, wie schnell vorherige Nachrichten abgearbeitetet werden. Wenn nicht punktgenaue Zeitunterschiede (ein paar Sekunden, Schwankung völlig unproblematisch) ausreichen, ist der WM_TIMER wesentlich einfacher zu handhaben.

Wenn es genau sein muss, bist du mit dem Thread schon besser dran. Beim Thread ist halt das übliche Rumgemurkse (ThreadProc statisch, Variablenzugriff threadübergreifend) mit dabei.

Wenn du es auf Millisekunden genau haben willst, kannst du Multimedia Timer benutzen. Aber ich denke, das wirst du bei sowas "simplen" wie Werteüberwachung nicht wirklich brauchen. Das sind dann eher so sachen wie Sound-Abspielen, wo man es sofort hört, wenn ein Sound-Stream irgendwo einen Ruckler hat.
 
moin


Danke erstmal für die ausführliche Antwort.

Zur Zeit ist der der Timer noch so eingestellt das er alle 10ms ein Signal "abgibt" weil ich die Werte bei veränderungen möglichst flüssig darstellen will. Da das Programm später aber völlig selbständig laufen soll, werde ich die Zeitspanne, aber wahrscheinlich auf 100ms oder 1000ms setzen.

Mir ging es auch eher ums Prinzip und da hast mir schon weitergeholfen.


mfg
umbrasaxum
 

Neue Beiträge

Zurück