doppelte events bei FindFirst/NextChangeNotification
-
hola leute
fuer ne kleine synchronisation einer DBase datenbank hab ch mir nen thread gebastelt, der vom system ne benachrichtigung bekommen soll, wenn in einem bestimmten ordner eine datei beschrieben, geaendert oder ueberschrieben worden ist. funktioniert an sich tadellos. jedoch bekomme ich immer 2 events.
hier mal bissl code
void __fastcall WatchThread::Execute() { Form1->events[1] = FindFirstChangeNotification(ExtractFilePath(Form1->Dateiname->Text).c_str(), false, FILE_NOTIFY_CHANGE_LAST_WRITE); bool stop = false; unsigned int event_no = 0; Form1->Memo1->Lines->Add("Watch-Thread wurde gestartet"); while(!stop) { event_no = WaitForMultipleObjects(2, Form1->events, false, INFINITE); switch(event_no) { case 0: stop = true; break; case 1: Sleep(500); ResetEvent(Form1->events[1]); Form1->Memo1->Lines->Add("Datei wurde veraendert"); if(!FindNextChangeNotification(Form1->events[1])) { stop = true; Form1->Memo1->Lines->Add("Fehler: FindNextChangeNotification"); } break; } } FindCloseChangeNotification(Form1->events[1]); Form1->Memo1->Lines->Add("Watch-Thread wurde beendet"); delete this; }sobald ich die datei ueberschreibe oder so, bekomme ich
Fehler: FindNextChangeNotofication Fehler: FindNextChangeNotoficationals ausgabe in meinem memo. is das normal so ?
Meep Meep