2 sachen auf einmal laufen lassen
-
tach
ich will 2 schleifen gleichzeitig laufen lassen.
beispiel.
eine schleife frägt jede 10 sekunden die rohstoffe ab, währen eine andere schleife jede 20 min ein gebäude baut.wie löse ich das Problem?
-
bammes schrieb:
tach
ich will 2 schleifen gleichzeitig laufen lassen.
beispiel.
eine schleife frägt jede 10 sekunden die rohstoffe ab, währen eine andere schleife jede 20 min ein gebäude baut.
wie löse ich das Problem?Entweder mit Threads. Dann mußt Du aber beim Synchronisieren aufpassen... Nicht einfach.
Oder Du hast nur eine Hauptschleife.
time_t nextRohstoff=0; time_t nextGebaeude=0; for(;;){ time_t jetzt=time(0); if(jetzt>=nextRohstoff){ bauRohstoffeAb(); nextRohstoff+=10; } if(jetzt>=nextGebauede){ baueGebauede(); nextGebauede+=20*60; } Sleep(1000);//oder unter linux sleep(1); }oder noch genauer sleepen mit
time_t nextAction=std::min(nextRohstoff,nextGebaude); time_t sekundenZuWarten=nextAction-time(0); if(sekundenZuWarten>0) Sleep((nextAction-time(0))*1000);
-
Mit Threads. Ist aber betriebssystemabhängig. Da du keines nennst, verweise ich dich mal auf boost::thread, welches dies systemunabhängig kapselt.
-
habe win 7 64 bit aber sollte auf allen windows versionen ab XP laufen also xp vista und 7
-
Ich möchte deine Energie nicht bremsen, aber tue dir selber einen Gefallen: Beschäftige dich ersteinmal mit wirklich grundlegenden Dingen, bevor du in die "echte" Programmierung einsteigst. Deine Nachfragen in dem Thread lassen darauf schließen, dass du noch nicht unmittelbar bereit für die Multithreading-Programmierung bist.
Ist wirklich nicht böse gemeint
.
-
eig scho finds aber lw immer nur diese "kleinen dinge" zu lernen.
-
Eigentlich brauchts da keine Threads sondern nur Timer.
Für Windows (Tipp: wechsle das OS) sieht das passend aus: http://www.codeproject.com/KB/system/timers_intro.aspx
-
ressemtiez schrieb:
Eigentlich brauchts da keine Threads sondern nur Timer.
Für Windows (Tipp: wechsle das OS) sieht das passend aus: http://www.codeproject.com/KB/system/timers_intro.aspxNaja, das ist die Programmierung mit den MFC, mit der puren WINAPI geht's noch viel einfacher mit SetTimer / der Nachricht WM_TIMER / KillTimer.
Das wird bammes aber trotzdem alles leider nichts nutzen, da ihm die Grundlagen noch fehlen.
-
ne die grundlagen weis die meisten