Ich schreibe einen Socket-Server, der viele Client-Anfragen zum Schreiben in eine Datei erhält. Ich habe eine Arrayliste, um die Socketlistener zu speichern. Nachdem ich den Client dazu gebracht habe, bis zu 25 Anfragen zu senden, speichert der Socket-Server 25 Socketlistener und startet 25 Threads, um die Daten zu empfangen und in die Datei zu schreiben. Nach der Ausführung erhalte ich vom Server die Fehlermeldung, dass er versucht, auf die gleiche Datei zuzugreifen, die von einem anderen Prozess gesperrt ist. Ich erhalte auch Null-Referenz-Fehler. Was ist also der beste Weg, die Threads zu synchronisieren, damit alle Anfragen verarbeitet und alle Daten in die Datei geschrieben werden.
Für jede Hilfe sind wir dankbar. Danke. -CR
string data = Encoding.ASCII.GetString(byteBuffer,0, size);
if (!File.Exists(filepath))
{
using (StreamWriter sw = File.CreateText(filepath))
{
sw.WriteLine(data);
}
}
else
{
using (StreamWriter sw = File.AppendText(filepath))
{
sw.WriteLine(data);
}
}