Sicheres Schreiben in eine Textdatei mit vielen Threads

Okay, mein Programm hat ungefähr 30 Threads und ich muss einige der Informationen, die in den einzelnen Threads gesammelt wurden, protokollieren.

Das habe ich folgendermaßen gemacht: Erstellen Sie einen öffentlichen statischen StringBuilder in der Klasse Program, und dann ruft jeder Thread alle paar Minuten die AppendLine-Methode für diese StringBuilder-Instanz auf. Dann macht alle 30 Minuten ein anderer Thread, der sich dem Schreiben mit einem StreamWriter widmet, genau das.

Zum Beispiel:

public class Program
{
    public static StringBuilder sb  = new StringBuilder();
    public static void Main(string[] args)
    {
        // Start all threads
    }
}

public class Example
{
    Thread t1 = new Thread(() =>
    {
        while(true)
        {
            DoSomething();
        }
    });

    Thread logThread = new Thread(() =>
    {
        while(true)
        {
            using(StreamWriter writer = new StreamWriter(Path))
            {
                writer.Write(Program.sb);
            }
        }
    });

    public static void DoSomething()
    {
        // Will do something for a few minutes.
        Program.sb.AppendLine("Some text gathered before...different everytime!");
    }
}

Ist das in Ordnung?

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage