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;

}

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...