[C/C++] Programm elegant warten lassen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Pac_-_man, 9. April 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 9. April 2009
    Programm elegant warten lassen

    Hi!

    Ich hab da mal ne frage:
    Mit der Sleep()-Funktion ist es ja möglich ein Programm für eine bestimmte Zeit warten zu lassen. Allerdings legt die Sleep()-Funktion ja das gesamte system lahm. also alle anderen Programme werden in der Zeit auch nicht ausgeführt. genau das möchte ich aber! ich mache es momentan mit einer Schleife und nem timer. die schleife (in der ich das programm "festhalte") sieht so aus:

    Code:
     float long over = time + t; // t ist die Zeit, die gewartet werden soll in sekunden
    
     while(time < over)
     {
     MsgWaitForMultipleObjectsEx(0,NULL,1,QS_ALLINPUT,0);
     Application->ProcessMessages();
     }
    
    nun wollte ich fragen, ob es vlt irgendnen eleganteren weg gibt, mein programm im hintergrund für ne bestimmte zeit warten zu lassen.

    vlt kann mir auch jemand den aufruf
    Code:
    MsgWaitForMultipleObjectsEx(0,NULL,1,QS_ALLINPUT,0);
    näher erläutern^^

    mfg
    pacman
     
  2. 9. April 2009
    AW: Programm elegant warten lassen

    Ganz ehrlich: wenn du 'n Sleep mit 50 Millisekunden nimmst ist das relativ harmlos, aber viel Prozessorschonender, und das einzige was dann schläft ist nur dein Thread .

    MsgWaitForMultipleObjectsEx prüft ob neue Nachrichten reingehen, wenn ja wartet er, ansonsten gehts weiter ( siehe MSDN ).
     
  3. 9. April 2009
    AW: Programm elegant warten lassen

    joa im msdn hab ich auch schon geschaut. aber nicht ganz verstanden. naja, vlt mag dir der thread etwas sinnlos erscheinen, aber es ist verdammt wichtig, dass das bei mir so funktioniert. und auch nen sleep von 50 ms nützt mir nichts, weil er genau in diesen 50 ms ne menge zu tun hat

    ich lass hier nochmal offen, falls jemand noch ne bessere idee hat.

    mfg
    pacman
     
  4. 9. April 2009
    AW: Programm elegant warten lassen

    Das widerspricht sich aber ^^ Wenn er warten soll, dann kann er doch nichts gleichzeitig tun oder?

    Ansonsten, wie remaL schon gesagt hat, Sleep() blockiert immer nur den aufrufenden Thread, nicht das ganze OS.
     
  5. 9. April 2009
    AW: Programm elegant warten lassen

    naja die anderen laufenden programme sollen in der zeit weiterarbeiten. aber ich war mir eigentlich ziemlich sicher das sleep alles platt macht, weil ich damit nämlich auch echt probleme hatte... hm.. ich glaub ich muss das nochmal nachschauen...

    danke soweit erstmal...
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.