Timer benutzen ???



  • Hi Peoples,

    welche Möglichkeiten gibt es in MFC um eine Funktion in regelmäßigen Zeitabständen aufzurufen ? Und für Threads ? Habe was von Timern gelesen, muß aber gestehen dass ich aus den Beschreibungen in der MSDN nicht wirklich schlau werde. Die TimerProc() braucht 4 Parameter und die SetTimer() auch noch 3 und es gibt da Unterschiede zw. timergesteuerten Aufrufen statischer und nicht statischer Funktionen ist das richtig???

    Ein Stück (kommentierten) Beispielcode würde mir gut weiterhelfen.



  • Hi,
    ich glaube du bist der Erste der sowas machen möchte.
    Das wird hier keiner Wissen.



  • http://download.pearsoned.de/leseecke/VCPLUS6_21Tg/data/start.htm
    Tag 4 bechäftigt sich mit dem Thema Timer



  • Das ist mal ne Antwort 🙂
    Danke guenni81 !



  • hey boyz

    also timer - mein special gebiet

    prinzipiell schreibst du dir die timer am besten selbst. Die mfc timer kannst du vergessen. Ich mach das meistens so:

    for (int i=0 ; i<= gewünschte abbruchzeit ; i++) //for-schleife von 0 bis abbruchzeit in sekunden
    {

    Sleep(1000); // entspricht einer sekunde

    }

    Aber ACHTUNG!!
    Vergiss nicht windows.h einzubinden.

    also kein problem machts gut jungs



  • Während dieser Schleife hängt aber das Programm - das ist wohl eher selten gewollt, oder? 🙄



  • 😃 aber hey die mfc timer kannste voll vergessen! 🙄
    Ich glaub der Freak dessen Spezialgebiet Timer sind weiß nicht den Unterschied zwischen Timern und Waitfunktionen! 🙄



  • Also nochmal für dijenigen die es nicht kapiert haben:

    for (int i=0 ; i<= gewünschte abbruchzeit ; i++) //for-schleife von 0 bis abbruchzeit in sekunden
    {

    Sleep(1000); // entspricht einer sekunde
    GoTo Marker1;

    }

    Marker1:
    ...... zusätzlicher code

    alter was geht ich dachte das wäre klar. Ich wußte nicht das ich hier bei A anfangen muß, echt!



  • MSDN schrieb:

    If you have a thread that uses Sleep with infinite delay, the system will deadlock.

    Und was schließen wir daraus? du hälst den Thread einfach nur für ne Sekunde an. ob danach nen GOTO kommt oder nicht! 🙄

    Fang mal bei A an würde mich mal interessieren!



  • c++freak schrieb:

    alter was geht ich dachte das wäre klar. Ich wußte nicht das ich hier bei A anfangen muß, echt!

    WENN du schon eine Alternative zeigst, dann zeig sie so, dass sie auch funktioniert. 🙄
    Und... verstanden habe ich das immer noch nicht. Theoretisch wartet das nur 1 Sekunde und die Schleife ist nutzlose Zierde dank des Goto (*schüttel*) 😕



  • Okay,
    es handelt sich bei der Sleep Funktion aber um eine definierte Zeitspanne, nicht um eine unendliche (infinite)!!!!
    Außerdem springt während der Sleep anweisung der Compiler in die untergeordnete Systemstruktur bestehend aus der Systemclock mit infiltriertem Quarz. Das heißt während des abges. Systemmodus arbeite ein Programm die unterdefinierte Funktionen des compilers ab. Um auf diese eingriff nehmen zu können muß man die scada link einstellungen setzten. Nun wird der eingespeiste code mit abgearbeitet

    so jetzte klar???



  • Was ist scada und wo finde ich das? 😕



  • Scada ist eine abkürzung für:

    System Control Administration Dialog Access

    Es handelt sich um ein Timer Upgrade von der Firma Reditech. Im netz www.scada.de. Du kannst dort diese upgrade für ein fuffi kaufen. Lohnt sich echt wenn man accurate und schnelle Timer braucht. Also ich brauchs auf jeden Fall für meine company und für mich hat sich das voll und ganz gelohnt! Kanns nur empfehlen! 👍 👍 👍



  • ja es handelt sich um eine definierte Zeitspanne aber wenn du verstanden hast dass bei undendlich Sleep ein Deadlock auftritt, dann sollte klar sein dass bei definierter Zeit der Thread dennoch für definierte Zeit stehen bleibt!
    Außerdem:

    Außerdem springt während der Sleep anweisung der Compiler in die untergeordnete Systemstruktur bestehend aus der Systemclock mit infiltriertem Quarz. Das heißt während des abges. Systemmodus arbeite ein Programm die unterdefinierte Funktionen des compilers ab.

    Sowas gibt mir ein Phrasendrescher für nonsens Phrasen aus! Klar wird bei sleep nicht einfach nur angehalten sondern die Funktion die nichts macht aufgerufen. Ganz doof sind wir ja auch nicht, und ich denke nicht dass ein Anfänger gleich mal über eine äußerst skuriele nicht professionell aufgebaute Seite eine DLL ziehen sollte, welche ihm Systemfunktionen verbiegt, Sleep funktion hat schon seinen Grund, Sleep ist und bleibt nunmal eine warte und keine Timer Funktion!
    Geh du zu deinem infiltriertem Quarz! (welch schwachsinn bei der Frage wie Timer funktionieren!)



  • Wenn du schon unbedingt die Sleeps laufen lassen möchtest um daraus einen Timer zu bauen, dann lass die Schleife in nem eigenen Thread laufen und in definierten Abständen eine Funktion aufrufen..


Anmelden zum Antworten