Hi!
der folgende Code läuft in einem Thread. Leider hängt der sich irgendwann auf.
Kann es daran liegen, dass ich für alle Handles des FHandleArrays in der for-Schleife
FindNextChangeNotification aufrufe, obwohl nur ein einziger
Handle wirklich zurückgekehrt
ist?
Das heißt zum Zeitpunkt 1ms meldet ein
Handle WAIT_OBJECT_0, jetzt arbeite ich den
weiteren Code ab und fordere die nächste Notification an, obwohl insgesamt noch keine
500 ms verstrichen sind. Oder wie kann man sich den Ablauf vorstellen?
Hat jemand Ideen?
Delphi-Quellcode:
while not Terminated and (Length(FHandleArray) > 0) do
begin
FWaitStatus := WaitForMultipleObjects(Length(FHandleArray), @FHandleArray[0],
False, 500);
if FWaitStatus = WAIT_FAILED then Exit;
if (FWaitStatus >= WAIT_OBJECT_0) and (FWaitStatus <= High(FHandleArray)) then
Synchronize(ExecuteOnChange);
for I := 0 to High(FHandleArray) do
FindNextChangeNotification(FHandleArray[I]);
end;
Hier der komplette Code:
alter Beitrag
Danke!!
Grüße
Sebastian