Entwickler-Ecke

Sonstiges (Delphi) - Procedureaufruf während procedure läuft


reddevil - So 08.12.02 00:34
Titel: Procedureaufruf während procedure läuft
also erstmal habe ich die folgende procedure


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure Delay(ATime: Cardinal); 
var Start: Cardinal; 
begin 
  Start := GetTickCount; 
  repeat 
    Application.ProcessMessages; 
  until GetTickCount - Start > ATime; 
end;


delay is also wie sleep nur das der programm "weiterläuft"

so jetzt hab ich


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure test; 
var a:integer; 
begin 
  ... 
  some stuff 
  ... 
  delay(30000); 
  ... 
  some stuff 
  ... 
end;


die procedure test wird aufgerufen .. es wird mit variable a gearbeitet .. dann kommt irgendwo delay(30000) in der procedure test.
was passiert nun wenn die procedure während des wartens erneut aufgerufen wird?

plz help

//red


Wolff68 - So 08.12.02 01:38

Nun, ich würde mal vermuten, daß eine weitere Instanz von Delay aufgerufen wird. Also das Programm 2x Wartet.
Bei rekursiven Funktionsaufrufen passiert ja was ähnliches, nur daß sich dort eine Funktion selber nochmal aufruft.


reddevil - So 08.12.02 01:43

das die funktion delay ein zweites mal geht dabei hab ich kaum sorge...
mein problem ist eher was passiert mit der variablen a wenn es sie dann "2mal gibt" .. und vor allem wird der lauf der zuerst gestarteten procedure test ungestört durch den zweiten Aufruf der procedure fortgesetzt?