C # Escribir en un archivo de texto de forma segura con un montón de subprocesos

Bueno, mi programa tiene alrededor de 30 subprocesos, y necesito hacer un registro de parte de la información recopilada a través de cada subproceso.

La forma en que lo hice es mediante la creación de un StringBuilder estático público en la clase Program, y luego cada hilo llamará al método AppendLine a esta instancia de StringBuilder cada pocos minutos. Luego, cada 30 minutos, otro Thread dedicado a escribir con StreamWriter hace exactamente eso.

Por ejemplo:

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

¿Es esta una buena forma de hacer esto?

Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta