/// <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; }
/// <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); }
protected virtual void Dispose(bool disposing) { if (!_disposed) { if (disposing) { if (_queue != null) { _queue.Dispose(); } _queueDispatcher = null; } _disposed = true; } }