--- C:/Temp/MemoryAppender.cs Thu Mar 30 13:18:52 2006 +++ C:/Temp/MemoryAppender2.cs Mon Jan 18 14:37:46 2010 @@ -75,7 +75,10 @@ /// virtual public LoggingEvent[] GetEvents() { - return (LoggingEvent[])m_eventsList.ToArray(typeof(LoggingEvent)); + lock (m_eventsList.SyncRoot) + { + return (LoggingEvent[])m_eventsList.ToArray(typeof(LoggingEvent)); + } } /// @@ -146,7 +149,10 @@ // volatile data in the event. loggingEvent.Fix = this.Fix; - m_eventsList.Add(loggingEvent); + lock (m_eventsList.SyncRoot) + { + m_eventsList.Add(loggingEvent); + } } #endregion Override implementation of AppenderSkeleton @@ -161,7 +167,10 @@ /// virtual public void Clear() { - m_eventsList.Clear(); + lock (m_eventsList.SyncRoot) + { + m_eventsList.Clear(); + } } #endregion Public Instance Methods