public ManagedBlockCollectionHandler(
                IManagedBlockConfigManager managedBlockConfigManager,
                IManagedBlockSettingsProvider managedBlockSettingsProvider,
                IManagerSettingsProvider managerSettingsProvider,
                IMyProgrammableBlock programmableBlock)
            {
                _managedBlockConfigManager    = managedBlockConfigManager;
                _managedBlockSettingsProvider = managedBlockSettingsProvider;
                _managerSettingsProvider      = managerSettingsProvider;
                _programmableBlock            = programmableBlock;

                _collectBlockOperationPool = new ObjectPool <CollectBlockOperation>(onFinished
                                                                                    => new CollectBlockOperation(this, onFinished));
            }
            public ManagedBlockConfigManager(
                ILogger logger,
                IReadOnlyList <IManagedBlockConfigParseHandler> managedBlockConfigParseHandlers,
                IManagerSettingsProvider managerSettingsProvider)
            {
                _logger = logger;
                _managedBlockConfigParseHandlers = managedBlockConfigParseHandlers;
                _managerSettingsProvider         = managerSettingsProvider;

                _parseOperationPool = new ObjectPool <ParseOperation>(onFinished =>
                                                                      new ParseOperation(this, onFinished));

                _parseLineOperationPool = new ObjectPool <ParseLineOperation>(onFinished =>
                                                                              new ParseLineOperation(this, onFinished));
            }