public void Add(ISupportFileCached item)
 {
     if (item == null)
     {
         throw new ArgumentNullException("item");
     }
     if (!this._items.Contains(item))
     {
         lock (this._items.SyncRoot)
         {
             if (!this._items.Contains(item))
             {
                 this._items.Add(item);
             }
         }
     }
 }
        public void RemoveAt(int index)
        {
            if ((index < 0) || (index > (this._items.Count - 1)))
            {
                throw new ArgumentOutOfRangeException("index");
            }
            ISupportFileCached item = null;

            lock (this._items.SyncRoot)
            {
                item = this._items[index] as ISupportFileCached;
            }
            if (item != null)
            {
                this.Remove(item);
            }
        }
        private void CheckItem(object state)
        {
            if (state == null)
            {
                throw new ArgumentNullException("state");
            }
            string[]           files  = null;
            FileInfo           info   = null;
            ISupportFileCached cached = null;

            cached = state as ISupportFileCached;
            if (cached != null)
            {
                files = cached.Files;
                if (files.Length != 0)
                {
                    for (int i = 0; i < files.Length; i++)
                    {
                        if (File.Exists(files[i]))
                        {
                            try
                            {
                                info = new FileInfo(files[i]);
                                if (info.LastWriteTime > this._dateTimeLastChecked)
                                {
                                    WorkThread.QueueItem(new WaitCallback(cached.FileReload), files[i]);
                                }
                            }
                            catch
                            {
                            }
                        }
                    }
                }
            }
        }