Probleme beim Verzeichnis-Überwachen



  • Hallo.

    Ich habe folgenden Loop:

    HANDLE hChanges;
    	DWORD dwWaitStatus;
    
    	// szIncomingDirectory: Der zu überwachende Ordner
    	// nSubDirectories: Aktiviert?
    	hChanges = FindFirstChangeNotification(szIncomingDirectory, nSubDirectories, FILE_NOTIFY_CHANGE_FILE_NAME);
    
    	if (hChanges == INVALID_HANDLE_VALUE)
    	{
    		// Ende!
    		nRunning = FALSE;
    		return;
    	}
    
    	// Die Hauptschleife
    	while (true)
    	{
    		dwWaitStatus = WaitForSingleObject(hChanges, 500);
    
    		if (dwWaitStatus == WAIT_OBJECT_0)
    		{
    			// Veränderungen am Ordner vornehmen
    			Procedure(szIncomingDirectory);
    		}
    		else if (dwWaitStatus != WAIT_TIMEOUT)
    			break;
    
    		// Wenn nicht mehr benötigt, weg damit!
    		if (nRunning == FALSE)
    			break;
    	}
    
    	FindCloseChangeNotification(hChanges);
    

    Das Problem ist nur, dass wenn ich änderungen per Procedure() vornehme, diese dann wieder ein WaitForSingleObject auslösen, da ja Veränderungen vorgenommen wurden.

    Was ist mein Problem daran?

    Danke.


Anmelden zum Antworten