Debug.writeline locks
        Posted  
        
            by Carra
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Carra
        
        
        
        Published on 2010-05-03T15:53:24Z
        Indexed on 
            2010/05/03
            15:58 UTC
        
        
        Read the original article
        Hit count: 227
        
c#
|multithreading
My program frequently stops with a deadlock. When I do a break-all and look at the threads I see that three threads are stuck in our logging function:
public class Logging
{
    public static void WriteClientLog(LogLevel logLevel, string message)
    {
      #if DEBUG
      System.Diagnostics.Debug.WriteLine(String.Format("{0} {1}", DateTime.Now.ToString("HH:mm:ss"), message)); //LOCK
      #endif
      //...Log4net logging
    }
}
If I let the program continue the threads are still stuck on that line.
I can't see where this can lock. The debug class, string class & datetime class seem to be thread safe.
The error goes away when I remove the "#if DEBUG System... #endif" code but I'm curious why this behavior happens.
Thread one:
public void CleanCache()
{
  Logging.WriteClientLog(LogLevel.Debug, "Start clean cache.");//Stuck
}
Thread two:
 private void AliveThread()
 {
   Logging.WriteClientLog(LogLevel.Debug, "Check connection");//Stuck
 }
© Stack Overflow or respective owner