Simulation
-
Hallo
ich möchte eine Simulation erstellen - hab schon viele Dinge erledigt die drumrum stattfinden. Jetzt interessiert mich wie ich es am besten und einfachsten machen kann, dass eine gewisse Menge an Befehlen durchgearbeitet werden und dann immer wieder das ganze durchlaufen wird, bis man die Simulation beendet. ABer es müssen ja die Menüs und die ganzen Buttons auch noch funktionieren - das krieg ich irgendwie nicht auf die Reihe.
Kann mir da jemand helfen oder eine paar Tips geben - wäre echt super. Auch Links über hilfreiche Internetseiten wären gut. Ich hab bis jetzt nichts passendes gefunden.Bernd
-
Beschreib doch mal genauer dein Problem
-
es ist so ich habe eine Simulation die muss regelmässig (so 3-5x die Minute) verschiedene Dinge machen also was aktualisieren - was beenden - ... (Simuliert Fahrzeuge) aber der Benutzer muss auch noch Eingaben machen können also einen anderen Bildschirm starten - Daten ändern ... die Sim sollte wenn möglich auch dann laufen aber im Hintergrund. Beendet wird erst mit Programm Ende.
Ich hoffe so kapiert man das besser.
-
Naja, die echte Arbeit wird normalerweise in einem sogenannten Worker Thread erledigt, der losgelöst vom GUI läuft (TThread z.B.)
-junix
-
Das schreit förmlich nach einem Thread.. den kannst du dann auch bequem mit TThread::Suspend() und TThread::Resume() schlafen schicken (Oder den Thread sich selber schlafen schicken lassen) bzw. wieder wecken. oder den Thread mit Sleep(n ms) aufhalten. Allerdings ist das dann eher die schlechtere Variante.
-junix
-
dann werd ich mal schauen ob ich da was finde.
Vielen Dank für den Rat.
-
warum nicht mit Timer?
~cp
-
Original erstellt von code_pilot:
warum nicht mit Timer?Resourcen Verschwendung, am Zweck des Timers vorbei, Hält die MessageQueue des Fensters unnötig auf, es gibt keine Möglichkeit die Priorität der Berechnungen zu saklieren (Höher als Normal, oder tiefer als normal oder soll gar nur simuliert werden, wenns sonst nix zu tun gibt?) ohne das GUI damit auch in den ABgrund zu reissen, und noch vieles mehr. Such dir was aus (o;
Der Timer macht sicher sinn, wenn zum Beispiel eine Simulation periodisch gestartet werden muss. Aber nicht dann, wenn die Simulation im Timerevent ausgeführt wird.
-junix