Hast Du denn Einfluss auf den Emulator, soll heissen kommst Du an dessen Quelltexte dran und kannst ihn modifizieren? Wenn nein, vergiss die Beschreibung unten
OK, beim zweiten Lesen der Ursprungsnachricht - ja, hast Du
Ohne das Betriebssystem zu arg zu stressen lösen wir das mit dem Schreiben einer Semaphorendatei, welche vor dem Erstellen der Inhaltsdatei erstellt wird und eine andere Dateiendung, aber den gleichen Namen hat. Diese Dateiendung wird vom Einleser nicht verarbeitet.
Dann lädt der Schreiber seine Daten in der eigentlichen Datendatei ab. Solange parallel noch die Semaphorendatei existiert, wird noch nicht ausgelesen. Ist der Schreiber fertig, löscht er diese Datei - es wird wieder ein DirectoryChange ausgelöst - und der Inhalt wird anschliessend vom auslesenden Programm verarbeitet, weil die Semaphorendatei nicht mehr existiert.
Insgesamt werden dabei 3-4 DirectoryChanges ausgelöst
1.) Semphorendatei wird erstellt - die wird sowieso nicht verarbeitet
2.) Datendatei wird erstellt und mit Daten befüllt - wird nicht verarbeitet, weil parallel noch die 1.) Datei existiert
3.) Semphorendatei wird gelöscht -> ok, dann ist der Schreiber fertig und die Daten können ausgelesen werden
4.) ggf. Löschen der Datendatei
Nur nicht unbedingt multithreadingfähig, es sei denn die Threads tauschen sich aus, was sie gerade am verarbeiten sind.