Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

timer function in c++

Empfohlene Antworten

Veröffentlicht

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.

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

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

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

}

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.