Пример #1
0
 /// <summary>
 /// Создает экземпляр читателя файла с указанным режимом чтения
 /// </summary>
 /// <param name="filePath">Путь до читаемого файла</param>
 /// <param name="mode">Режим чтения - чтение распакованного файла (для последующего сжатия)
 /// или чтение сжатого файла (для дальнейшей распаковки)</param>
 public Reader(string filePath, HandleMode mode)
 {
     _queue           = new BlockQueue(Environment.ProcessorCount);
     _queueDispatcher = new BlockQueueDispatcher(_queue, 1);
     _filePath        = filePath;
     _mode            = mode;
 }
Пример #2
0
 /// <summary>
 /// Создает новый экземпляр архиватора, неким образом обрабатывающего очередь блоков
 /// </summary>
 /// <param name="inputQueue">Входная очередь байтовых блоков, подлежащая обработке алгоритмом архивации/разархивации</param>
 protected Archiver(BlockQueue inputQueue)
 {
     _inputQueue      = inputQueue;
     _resultQueue     = new BlockQueue(1);
     _threads         = new Thread[Environment.ProcessorCount];
     _queueDispatcher = new BlockQueueDispatcher(_resultQueue, _threads.Length);
 }
Пример #3
0
        protected virtual void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                if (disposing)
                {
                    if (_queue != null)
                    {
                        _queue.Dispose();
                    }
                    _queueDispatcher = null;
                }

                _disposed = true;
            }
        }