001
12.09.2004, 13:37 Uhr
Spacelord
Hoffnungsloser Fall
|
Welche Windowsversion hast du? Das hier funktioniert unter 2000prof und XP.
Ist relativ genau...
C++: |
#define _WIN32_WINNT 0x0500
#include <windows.h> #include <iostream> using namespace std;
VOID CALLBACK TimerFunc(PVOID lpParam, BOOL TimerOrWaitFired) { cout<<"Timerfunktion gestartet:\t "<< GetTickCount()<<endl; HANDLE hEvent = OpenEvent(NULL,TRUE,"DUMMY"); SetEvent(hEvent); }
int main() { HANDLE hTimerQ=NULL; HANDLE hTimer =NULL; HANDLE event = CreateEvent(NULL,FALSE,FALSE,"Dummy"); if(event) { hTimerQ= CreateTimerQueue(); if(hTimerQ) CreateTimerQueueTimer(&hTimer, hTimerQ,(WAITORTIMERCALLBACK)TimerFunc, 0, 5000, 500, WT_EXECUTEINIOTHREAD); cout<<"Timer gestartet: \t\t"<<GetTickCount()<<endl; }
WaitForSingleObject(event,INFINITE);
return 0; }
|
Das erste mal wird die Callbackfunktion nach 5000 Millisekunden aufgerufen und anschliessend alle 500 Millisekunden. Der Timer läuft in seinem eigenen Thread und bremst somit nicht deinen "Hauptthread" aus.
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes. Dieser Post wurde am 12.09.2004 um 13:49 Uhr von Spacelord editiert. |