Autor |
Beitrag |
Dommel
Hält's aus hier
Beiträge: 12
|
Verfasst: 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 DeCodeGuru: Topic verschoben
|
|
patrick
      
Beiträge: 1481
WIN2k, WIN XP
D6 Personal, D2005 PE
|
Verfasst: 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 
Hält's aus hier
Beiträge: 12
|
Verfasst: Mo 23.02.04 17:29
hi,
danke für deine Antwort, werds mir mal angucken
cu
Dommel
|
|
Dommel 
Hält's aus hier
Beiträge: 12
|
Verfasst: 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
      
Beiträge: 351
WinXP,Linux
D7 Prof, XE7
|
Verfasst: 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 
Hält's aus hier
Beiträge: 12
|
Verfasst: Mo 23.02.04 18:28
und wie kann ich so einen Thread erstellen?
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 23.02.04 20:01
|
|
Dommel 
Hält's aus hier
Beiträge: 12
|
Verfasst: 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
|
Verfasst: 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 
Hält's aus hier
Beiträge: 12
|
Verfasst: 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
|
Verfasst: 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 
Hält's aus hier
Beiträge: 12
|
Verfasst: Do 26.02.04 16:54
OK, dann kann ich das ja alles so lassen
nochmals danke
cu
Dommel
|
|