Dann würde ich die Execute-Schleife noch etwas verändern:
Delphi-Quellcode:
while not Terminated do begin
if WaitForSingleObject(ChangeHandle,500) = WAIT_OBJECT_0
then begin
Synchronize(AskAfterFileChanged);
FindNextChangeNotification(ChangeHandle);
end;
end;
Denn auch wenn WaitForSingleObject auf einen Timeout gelaufen ist, sollte Terminated abgefragt werden.