#1 18. November 2013 Hallo zusammen, Ich hab ein kleines Programm geschrieben welches übergebene Parameter in eine Datei schreibt. Das Problem: Dieses Programm wird sehr oft parallel aufgerufen und soll immer in die gleiche Datei schreiben. Gleichzeitige Dateizugriffe (zum schreiben) rufen jedoch Exceptions auf. Ich hab im Netz leider keine Lösungen gefunden welche für mich funktioniert, vielleicht habt ihr eine Idee? Was ich schon probiert habe: try / catch in eine Funktion die sich immer wieder selber aufruft ( mit Sleep Time dazwischen ). In eine Datei schreiben über cmd /c echo bla >> bla.txt. Leider hat nichts funktioniert. Viele Grüße Neo + Multi-Zitat Zitieren
#2 19. November 2013 AW: [C#] Auf Prozess / Datei warten Selber Prozess (Threads): Mutex-Klasse (System.Threading) Mehrere Prozesse: FileStream.Lock Method FileStream.Unlock Method + Multi-Zitat Zitieren
#3 19. November 2013 Zuletzt bearbeitet: 19. November 2013 AW: [C#] Auf Prozess / Datei warten Ok Mutex ist es doch nicht, der Prozess startet mehrmals parallel... Das ich Locken und Unlocken kann ist schön aber ich möchte es ja nicht einfach hinnehmen, sondern möchte das er es wieder probiert. Mit einer Schleife haut es leider auch nicht hin... :/ + Multi-Zitat Zitieren
#4 19. November 2013 Zuletzt bearbeitet: 19. November 2013 AW: [C#] Auf Prozess / Datei warten Kenn mich in C# nicht wirklich aus, aber Mutex ist da allgemein das Mittel der Wahl. Du kannst doch vor dem Schreiben überprüfen, ob die Datei gelockt ist und dann halt solange warten, bis sie wieder freigegeben wurde. Musst nur aufpassen dass kein Deadlock entsteht, falls eine Programminstanz abraucht, während sie in die Datei schreibt. Pseudocode Code: // warten bis der andere Prozess die Datei freigibt while (Mutex.isLockedByAnotherProcess()) { sleep(1000ms); } // exklusiven Zugriff sichern, Daten schreiben und Zugriff wieder aufheben Mutex.lock(); writeStuffToFile(); Mutex.unlock(); + Multi-Zitat Zitieren