Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Funktion pausieren
Dommel - Mo 23.02.04 14:49
Titel: Funktion pausieren
hi,
ich schreibe gerade an einem Simulationsprogramm für einen Algorithmus. Jetzt habe ich die Frage, ob man die Funktion, die den Algorithmus beinhaltet irgendwie anhalten kann und durch eine andere Funktion (die durch einen Button ausgelöst wird) an der aktuellen Stelle fortsetzen kann.
cu
Dommel
PS: Ich hoffe, dass dies das richtige Forum für meine Frage ist.
Moderiert von
DeCodeGuru: Topic verschoben
patrick - Mo 23.02.04 17:08
such einmal in der delphi-hilfe nach "break" und "continue"
das dürfte dir weiterhelfen
(sorry, keine zeit mehr für genauere beschreibung...)
Dommel - Mo 23.02.04 17:29
hi,
danke für deine Antwort, werds mir mal angucken
cu
Dommel
Dommel - Mo 23.02.04 17:39
ich glaube, dass 'break' und 'continue' nicht die Befehle sind, die ich suche.
'break' und 'continue' benutzt man ja in Schleifen, um diese zu beenden bzw. an den Anfang der Schleife zu springen.
Ich suche aber ein Befehl, der meine Funktion unterbricht, so dass das eigentliche Programm weiterlaufen kann und man dann mit einem Button die Funktion an der Stelle, wo sie unterbrochen wurde, fortsetzen kann.
KidPaddle - Mo 23.02.04 18:17
Ein normale Funktion kann nicht unterbrochen und später weiter ausgeführt werden. Eine solche Funktionalität kannst Du nur mit einem Thread erreichen, da diese einen eigenen Stackframe und Programm - Counter besitzen. Mit Resume und Suspend kannst Du dann diesen Thread anhalten und Stoppen.
Gruß
KidPaddle
Dommel - Mo 23.02.04 18:28
und wie kann ich so einen Thread erstellen?
Dommel - Mi 25.02.04 15:39
Titel: DANKE
hi,
danke für das Thread-Tutorial. Es ist zwar etwas umfangreich für meine Zwecke ;) , aber es funktioniert jetzt alles genau so wie ich es mir gedacht hab'.
cu
Dommel
Delete - Mi 25.02.04 21:18
Nur ist es nicht empfehlenswert einen Thread mit Suspend "schlafen" zu legen. Angenommen er befindet sich in einer CriticalSection, dann blockiert er alle anderen Threads auch die auf diese Ressourcen angewiesen sind.
Dommel - Do 26.02.04 14:46
und wie finde ich heraus, ob sich der Thread in einer 'CriticalSection' befindet?
Im Moment habe ich es so gelöst:
Der Thread pausiert sich selbst (mit 'SuspendThread()') nach einem bestimmten Abschnitt des Algorithmus. Per Button wird er dann mit 'ResumeThread()' von meinem Programm fortgesetzt
Delete - Do 26.02.04 16:40
Das wäre zum Beispiel eine Möglichkeit. Da kannst du sicher gehen, dass er in keiner CS ist.
Dommel - Do 26.02.04 16:54
OK, dann kann ich das ja alles so lassen :)
nochmals danke
cu
Dommel
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!