Einzelnen Beitrag anzeigen

Benutzerbild von sieppl
sieppl

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

Re: WaitForMultipleObjects - Fehler durch zu frühes FindNext

  Alt 30. Sep 2004, 21:34
Zitat von Basilikum:
weshalb ersetzt Du nicht einfach die Zeile
Delphi-Quellcode:
for I := 0 to High(FHandleArray) do
      FindNextChangeNotification(FHandleArray[I]);
durch
FindNextChangeNotification(FHandleArray[FWaitStatus - WAIT_OBJECT_0]); so würdest Du immer nur für das signalisierende ChangeNotification FindNext aufrufen... sollten 2 "gleichzeitig" signalisierend sein, ergäbe dies 2 Schleifendurchgänge hintereinander, da WaitForMultipleObjects immer nur für ein Object den Signaled-Status entfernt (dasjenige, das auch im Return-Value angegeben wurde)...
das wollte ich wissen. ich fasse mal zusammen:
nehmen wir an ich habe 3 objekte. eines bekommt nun den signaled-status. dieser wird entfernt,
ich rufe mein synchronize auf, um muss nur für dieses handle findnext* aufrufen.
falls keines den signaled-status bekommt (WAIT_TIMEOUT) muss ich aber für alle 3 objekte findnext* aufrufen oder rufe ich einfach wieder waitfor* für alle 3 auf?
logisch wäre mir nur findnext* aufzurufen wenn eines signaled ist.

danke!

[EDIT:]

habe es gerade ausprobiert und natrülich darf FindNextChangeNotification NUR augerufen werden, wenn das Objekt vorher auch signaled war. Großer Fehler..
Sebastian
  Mit Zitat antworten Zitat