You are not logged in.

  • Login

1

Friday, November 17th 2006, 5:55pm

low-level timer mit restart und callback

hi,

ich frage mich wie man im unmanaged c++ einen anständigen timer programmiert? (windows ab 2000) also keine schleifen oder sonstwas.

ich möchte kein mfc oder ähnliches includen. es ist einfach eine dll in der ich einen low-level timer mit restart-funktion und einer callbackfunnktion implementieren möchte. bis jetzt habe ich immer nur etwas gefunden wie multimedia-timer oder die timerqueue. aber irgendetwas passt mir da nie richtig (kein restart oder auf windowsmessages basis)

gibt es nicht gescheite libs oder so? habe noch nichts gefunden.

2

Saturday, November 18th 2006, 5:45am

QueryPerformanceCounter is your best friend

3

Wednesday, November 22nd 2006, 7:13pm

wie bekommt man denn mit dem queryperformancecounter einen callback hin?

4

Wednesday, November 22nd 2006, 7:54pm

Hallo,
ne kleine Gegenfrage:
Was genau passt dir an der TimerQueue Geschichte nicht?
Würde ich, im Zusammenhang mit ner Callbackfunktion,eigentlich favorisieren.

Gruß void

5

Wednesday, November 22nd 2006, 8:11pm

da gibt es net die schöne funktion "resetTimer"
da müsste ich jedes mal den timer löschen und wieder setzen! und des kann ziemlich oft passieren!

6

Wednesday, November 22nd 2006, 8:52pm

Ist das denn zu nem Problem geworden?
Ich würde es damit probieren.
Mit QueryPerformanceCounter&Callback kommst du um nen (selbstverwalteteten) Thread nicht drumrum.
Da sehe ich wesentlich mehr "Aufrufaufwand".

Gruß void

7

Wednesday, November 22nd 2006, 10:06pm

Da wir gerade bei dem Thema sind werfe ich auch gerade etwas in die Runde:

Bin gerade an einem Counter dran, der auf Zehntelsekunden genau ist.
Um das zu realisieren habe ich einen Timer zur Hilfe genommen (eingefügt per Visual Designer). Den Interval ist auch darauf abgestimmt.

Nun meine Frage:
Wie spreche ich den Timer an, dass er bei jedem "Tick" etwas Bestimmtes tun soll?
Also wie ich ihn starte ist mir klar, aber ich bekomme es einfach nicht hin ihn anzusprechen.
Ich habe es mittlerweile mit einer for-Schleife probiert und mit dem Member "On_Tick" und da "->Tick" gar nicht erst gefunden wird bin ich ratlos.

Gruss jott

8

Wednesday, November 22nd 2006, 11:03pm

Da der Timer eine MFC Komponente zu sein scheint (sorry habe eigentlich keine Ahnung von MFC), müsste er ein Event auslösen bei jedem Tick. Da brauchst du nicht selber nachschauen obs einen Tick gab (mit einer Schleife oder soetwas), sondern dich einfach nur in seinem Event einklinken.

Musst aufpassen dass der Code bei einem Tick nicht zum umfangreich wird, denn sonst kannst du Timing-Probleme bekommen - Windows ist kein Echtzeitbetriebssystem.

Social bookmarks