Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Befehl nach bestimmter Zeit ausführen.

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
11.02.2015, 21:25 Uhr
~Underfaker
Gast


Hallo zusammen,

ich möchte gerne eine bestimmte Schleife ausführen aber abbrechen wenn eine bestimmte Zeitspanne überschritten ist oder wenn eine bestimmte Zahl an Iterationen erreicht ist.

Ich stelle mir das so vor:


C++:
bool goOn = true;
int maxIteration = 100;
int counter = 0;
while(goOn && counter < maxIteration)
{
    berechneEtwas();
}



Nun soll aber goOn nach bspw. 200 Sekunden auf false gesetzt werden sodass die Schleife nicht weiterrechnet.
Zum Beispiel indem nach 200 Sekunden eine Methode aufgerufen wird die die Variable auf false setzt.

Ich weiß leider nicht wie ich das am besten umsetzen soll, Threads scheinen mir schwierig umzusetzen zu sein, da ich scheinbar ein paar Methoden nicht nutzen kann, da ich VS2010 nutze.

Hat jemand eine Idee oder einen Beispielcode der zu den oben genannten Anforderungen passt?

Vielen Dank und beste Grüße
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.02.2015, 22:02 Uhr
Hans
Library Walker
(Operator)


Hi,

im WinAPI gibt es Timer, die für solche und ähnliche Zwecke gedacht sind. Guckst Du hier:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms632592%28v=vs.85%29.aspx

Der Haken daran ist, Dass Du mit der ereignisgesteuerten Programmierung von Windows vertraut sein musst, um sie nutzen zu können. Wenn Du davon keine Ahnung hast, wirst Du bei dem Beispielcode, der dort verlinkt ist, Verständnisschwierigkeiten haben, weil kein vollständiges Beispielprogramm angegeben wird. Solche findest Du etwa in Charles Petzolds berühmten Buch zur Windowsprogrammierung in Kapitel 8.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 11.02.2015 um 22:08 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.02.2015, 14:46 Uhr
~toxic
Gast


Hi,

du könntest folgendes machen (pseudocode!)

Code:
int nTickTimeSpan = 20000; // 20000 Ticks
int goOn = GetActualTickCount() + nTickTimeSpan;
int maxIteration = 100;
int counter = 0;
while( (goOn > GetActualTickCount()) && (counter < maxIteration) )
{
    berechneEtwas();
}



Gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: