protected virtual void PurgeOldFiles(object state) { var oldEntries = new List <KeyValuePair <string, DateTime> >(); _cacheLock.EnterReadLock(); try { oldEntries = fileList.Where(x => DateTime.Now.Subtract(x.Value).TotalMinutes > 5).ToList(); } finally { _cacheLock.ExitReadLock(); } foreach (var entry in oldEntries) { var file = GetFileNameFromConfig(entry.Key); RRTracer.Trace("purging old file: {0}", file); _cacheLock.EnterWriteLock(); try { FileWrapper.DeleteFile(file); fileList.Remove(entry.Key); } catch (Exception ex) { if (Registry.CaptureErrorAction != null) { Registry.CaptureErrorAction(ex); } } finally { _cacheLock.ExitWriteLock(); } } }
protected virtual void PurgeOldFiles(object state) { var oldEntries = fileList.Where(x => DateTime.Now.Subtract(x.Value).TotalMinutes > 5); foreach (var entry in oldEntries) { var file = GetFileNameFromConfig(entry.Key); RRTracer.Trace("purging old file: {0}", file); try { FileWrapper.DeleteFile(file); DateTime date; fileList.TryRemove(entry.Key, out date); } catch (Exception ex) { if (Registry.CaptureErrorAction != null) { Registry.CaptureErrorAction(ex); } } } }