Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

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

Geschrieben

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

Geschrieben

// 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;

}

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...