Thread Prozess fernsteuern: er soll nicht auf Rückgabewert warten! (7 answers)
Opened by kölsch at 2004-03-12 14:28

kölsch
 2004-03-12 14:28
#1620 #1620
User since
2003-10-02
66 Artikel
BenutzerIn
[default_avatar]
Hi,
ich möchte mit einer Methode start() (s.u.) einen "quasi" Endlos-Prozess starten.
Das heißt konkret: wenn ich den Start-Button drücke, wird die Methode start() aufgerufen, und der Prozess wird gestartet. Danach soll er wieder zurück zum Hauptframe &mainControlFrame() (mit dem Start und Stop Button) zurück, wo ich den Prozess wieder mit stop() beenden kann. Mein Problem dabei ist aber, dass er nicht zu diesem Frame zurückkehrt weil er auf einen Rückgabewert von enlessLoop() wartet. Wie kann ich das verhindern?
'exec' machts übrigens auch nicht.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sub start {

# check-Variable auf 1 (on) stellen..
open (ONOFF,">OnOff.num") || die ("Can't open OnOff.num!");
flock(ONOFF, 2)  or &cgierr("unable to get exclusive lock on OnOff.num.\nReason: $!");
print ONOFF "1";
close ONOFF;


#&endlessLoop(); # geht so nicht weil auf return-value wartet..

# hier wartet er auch! -> warum?
{ exec  (&endlessLoop()) };  print STDERR "couldn't exec &endlessLoop(): $!";


&mainControlFrame(); # zurück zum HauptFrame..
}


Würde mir ein Thread weiterhelfen, oder wär ich da auf dem ganz falschen Dampfer?

Vielen Dank,
Gruß Daniel\n\n

<!--EDIT|kölsch|1079094578-->

View full thread Prozess fernsteuern: er soll nicht auf Rückgabewert warten!