internal void BeginConsume(NewEntryHandler fsEntriesHandler)
 {
     while (true)
     {
         MonitorQueue(fsEntriesHandler);
     }
 }
        private void MonitorQueue(NewEntryHandler fsEntriesHandler)
        {
            if (FsEntriesQueue.Count > 0)
            {
                HierarchicalLink <FileSystemInfo> newFsEntry;
                try
                {
                    Monitor.Enter(FsEntriesQueue);
                    newFsEntry = FsEntriesQueue.Dequeue();
                }
                finally
                {
                    Monitor.Exit(FsEntriesQueue);
                }

                fsEntriesHandler.Invoke(newFsEntry);
            }
            else
            {
                fsEntryScannedEvent.WaitOne();
            }
        }