Einzelnen Beitrag anzeigen

Benutzerbild von sieppl
sieppl

Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
 
Delphi 7 Professional
 
#1

WaitForMultipleObjects - Fehler durch zu frühes FindNext?

  Alt 30. Sep 2004, 20:25
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
Sebastian
  Mit Zitat antworten Zitat