.NET 2.0: File.AppendAllText (…) - потокобезопасная реализация

В качестве упражнения из праздного любопытства рассмотрим следующий простой класс ведения журнала:

internal static class Logging
{
    private static object threadlock;

    static Logging()
    {
        threadlock = new object(); 
    }

    internal static void WriteLog(string message)
    {
        try
        {
            lock (threadlock)
            {
                File.AppendAllText(@"C:\logfile.log", message);
            }
        }
        catch
        {
            ...handle logging errors...
        }
    }
}

Требуется ли блокировка вокруг File.AppendAllText ( ...) или метод изначально является потокобезопасным благодаря своей собственной реализации?

Поиск информации по этому вопросу дает много противоречивой информации, некоторые говорят «да», некоторые говорят «нет». MSDN ничего не говорит.

11
задан Pierre Arnaud 14 November 2018 в 06:08
поделиться