Ejemplo n.º 1
0
        //*****************************************************************************************************************
        public static void Write(string file, string content)
        {
            if (XwConcurrentFileBufferCleanTimer == null)
            {
                XwConcurrentFileBufferCleanTimer           = new Timer(1000 * 6);
                XwConcurrentFileBufferCleanTimer.Elapsed  += (sender, e) => OnCleanTimer();
                XwConcurrentFileBufferCleanTimer.AutoReset = true;
                XwConcurrentFileBufferCleanTimer.Enabled   = true;
            }

            lock (string.Intern(file))
            {
                XwConcurrentBufferedFileInternalBuffer buffer = null;
                XwConcurrentFileBufferCollection.TryGetValue(file, out buffer);
                if (buffer == null)
                {
                    lock (XwConcurrentFileBufferCollection)
                    {
                        buffer = new XwConcurrentBufferedFileInternalBuffer(file, XwConcurrentFileMaxBufferSize, XwConcurrentFileMaxFlushInterval);
                        XwConcurrentFileBufferCollection.Add(file, buffer);
                    }
                }
                buffer.Add(content);
            }
        }
Ejemplo n.º 2
0
 //*****************************************************************************************************************
 public static void Flush(string file)
 {
     lock (string.Intern(file))
     {
         XwConcurrentBufferedFileInternalBuffer buffer = null;
         XwConcurrentFileBufferCollection.TryGetValue(file, out buffer);
         if (buffer != null)
         {
             buffer.Flush();
         }
     }
 }
Ejemplo n.º 3
0
 //*****************************************************************************************************************
 public static void Clear(string file)
 {
     lock (string.Intern(file))
     {
         XwConcurrentBufferedFileInternalBuffer buffer = null;
         XwConcurrentFileBufferCollection.TryGetValue(file, out buffer);
         if (buffer == null)
         {
             lock (XwConcurrentFileBufferCollection)
             {
                 buffer = new XwConcurrentBufferedFileInternalBuffer(file, XwConcurrentFileMaxBufferSize, XwConcurrentFileMaxFlushInterval);
                 XwConcurrentFileBufferCollection.Add(file, buffer);
             }
         }
         buffer.Clear();
     }
 }
Ejemplo n.º 4
0
 //-------------------------------------------------------------------------------------------------------------
 private static void OnFlushTimer(XwConcurrentBufferedFileInternalBuffer buffer)
 {
     buffer.Flush();
 }