コード例 #1
0
        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();
                }
            }
        }
コード例 #2
0
        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);
                    }
                }
            }
        }