В качестве упражнения из праздного любопытства рассмотрим следующий простой класс ведения журнала:
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 ничего не говорит.