private void Add(LogData data) { if (m_isClosed) { return; } lock (outCacheList) { if (outCacheList.Count >= MaxCacheCount) { return; } outCacheList.Add(data); } }
private void Upate() { while (!m_isClosed) { //载入数据 outCacheDic.Clear(); lock (outCacheList) { foreach (LogData data in outCacheList) { if (outCacheDic.ContainsKey(data.m_fileName)) { outCacheDic[data.m_fileName].Add(data); } else { LogDataList list = new LogDataList(); list.Add(data); outCacheDic.Add(data.m_fileName, list); } } outCacheList.Clear(); } if (outCacheDic.Count > 0) { DateTime time = DateTime.Now; foreach (var item in outCacheDic) { string fileName = item.Key; LogDataList list = item.Value; string path = GetFilePath(time, fileName); list.Write(path, time); } } System.Threading.Thread.Sleep(100); } }