Autor Beitrag
Dommel
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mo 23.02.04 14:49 
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 user profile iconDeCodeGuru: Topic verschoben
patrick
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1481

WIN2k, WIN XP
D6 Personal, D2005 PE
BeitragVerfasst: 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...)

_________________
Patrick
im zweifelsfall immer das richtige tun!!!
Dommel Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mo 23.02.04 17:29 
hi,

danke für deine Antwort, werds mir mal angucken

cu
Dommel
Dommel Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 351

WinXP,Linux
D7 Prof, XE7
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mo 23.02.04 18:28 
und wie kann ich so einen Thread erstellen?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 23.02.04 20:01 
Dommel Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: 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
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: 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
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Do 26.02.04 16:54 
OK, dann kann ich das ja alles so lassen :)
nochmals danke

cu
Dommel