作为一种闲暇好奇心的练习,考虑以下简单的日志记录类:
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(...)
这个方法的实现本身是否具有线程安全性?需要在其周围使用lock
吗?
搜索关于这个问题的信息会得到很多矛盾的信息,有些人说需要,有些人说不需要。MSDN没有提到。