draven Geschrieben 14. März 2002 Geschrieben 14. März 2002 ich habe folgendes anliegen: ich soll in einem bestimmten takt (1min) aktuelle daten aus einer datenbank auslesen und danach eine komplette html erzeugen die mir den aktuellen datensatz anzeigt. Das mit dem auslesen und reinschreiben habe ich schon gemacht allerdings fehlt mir immer noch die timer function die ständig läuft. kann mir jemand helfen, das ganze läuft unter einer consolen application in vc++.ein beispiel wie man die erstellt und anwendet wäre nicht schlecht, die hilfe ist nämlich nicht so toll. danke schonmal im voraus. Zitieren
root@localhost Geschrieben 14. März 2002 Geschrieben 14. März 2002 hi du definierst dir eine Konstante: #define MYTIMER 10000 // das 10000 is nich weiter von bedeutung mit SetTimer(MYTIMER,1000,NULL); // 1000 ms startest du den Timer im Klassenassistent musst du dann unter Nachrichtenzuordnungstabellen die ObjektId auf dein CDeinTimerDlg (DeinTimer oder was auch immer) stelln und dann rechts im Feld Nachrichten daneben die Funktionen WM_CLOSE und WM_TIMER hinzufügen. die OnTimer kannst du dann wie folgt ausprammieren: void CDeinTimer::OnTimer(UINT nIDEvent) { switch (nIDEvent) { case MYTIMER: //Reaktion auf den 1 Sec. Timer break; case ZUFALLSTIMER: //Reaktion den zweiten timer und so weiter break; } } und natürlich kann man den Timer auch wieder löten KillTimer(MYTIMER); viel spass damit Zitieren
Orffi Geschrieben 19. März 2002 Geschrieben 19. März 2002 Das Problem bei dieser Lösung ist, daß sie keine Ansi/Iso Lösung ist. C++ kennt weder SetTimer (ist eine Funktion aus der Windows-Api) noch kennt C++ Events, wie sie hier benutzt werden. Man kann sich in C++ leider nur mit busy waiting helfen. Man muß eine Schleife schreiben, in der mit clock_t zeit = clock(); Die Zeiten gemessen/geprüft werden. Ist nicht die schönste Lösung, aber die einzige, in C++ möglich ist. Die andere Lösung, gehört leider nicht in diese "Abteilung"... Jan Zitieren
Shadax Geschrieben 19. März 2002 Geschrieben 19. März 2002 // oder mit time(): #include <time.h> #include <stddef.h> int main(void) { time_t oldtime; oldtime = time(NULL); while(1) { if(time(NULL) - oldtime >= 60) { oldtime = time(NULL); // db query // . // . // . } } return 0; } Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.