Вот такая реализация, может ли File.AppendText по каким-то обстоятельствам зависнуть, тем самым создав deadlock ? По идее все операции IO имеют некий таймаут. Ситуацию когда при обращении к файлу зависнет драйвер думаю нет смылса смотреть, т.к. в этом случае придется перезагружать систему.
Какие-то может еще грабли есть от использования lock{} в этом случае ?
public class Log
{
private static string m_LogFilename;
private static object m_LogSync = new object();
public static void Write( string text )
{
lock( m_LogSync )
{
File.AppendText( m_LogFilename, text );
}
}
}