C # Запись в текстовый файл безопасно с кучами потоков

Итак, моя программа имеет около 30 потоков, и мне нужно сделать запись некоторой информации, собранной через каждый поток.

Я сделал это следующим образом: создал открытый статический StringBuilder в классе Program, а затем каждый поток будет вызывать метод AppendLine для этого экземпляра StringBuilder каждые несколько минут. Затем каждые 30 минут другой поток, посвященный написанию с использованием StreamWriter, делает именно это.

Например:

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!");
    }
}

Это нормальный способ сделать это?

Спасибо

Ответы на вопрос(4)

Ваш ответ на вопрос