public void Dispose() { _disposed = true; //clear load queue for thread exit _loadStack.Clear(); while (!_loadWorkerIsCompleted && _loadWorkerIsStarted) { Thread.Sleep(10); } _loadWorker.Dispose(); // if (_loadWorker != null) { _loadWorker.Dispose(); _loadWorker = null; } if (_tilesLocator != null) { _tilesLocator.Dispose(); _tilesLocator = null; } if (_tileCacheManager != null) { _tileCacheManager.Dispose(); _tileCacheManager = null; } if (_sleepTileCacheManager != null) { _sleepTileCacheManager.Dispose(); _sleepTileCacheManager = null; } if (_dataProviderReader != null) { _dataProviderReader.Dispose(); _dataProviderReader = null; } _dataProvider = null; _asyncRefreshCanvas = null; _canvas.OnEnvelopeChanged -= _canvasEnvelopeChanged; _canvas = null; }
private void CreateDataProviderReader() { switch (_dataProvider.DataType) { case enumDataType.Byte: _dataProviderReader = new DataProviderReaderByte(_tileSetting.TileSize, _selectedBandNos, _dataProvider, _stretcherProvider, _colorTableName); break; case enumDataType.UInt16: _dataProviderReader = new DataProviderReaderUInt16(_tileSetting.TileSize, _selectedBandNos, _dataProvider, _stretcherProvider, _colorTableName); break; case enumDataType.Int16: _dataProviderReader = new DataProviderReaderInt16(_tileSetting.TileSize, _selectedBandNos, _dataProvider, _stretcherProvider, _colorTableName); break; case enumDataType.UInt32: _dataProviderReader = new DataProviderReaderUInt32(_tileSetting.TileSize, _selectedBandNos, _dataProvider, _stretcherProvider, _colorTableName); break; case enumDataType.Int32: _dataProviderReader = new DataProviderReaderInt32(_tileSetting.TileSize, _selectedBandNos, _dataProvider, _stretcherProvider, _colorTableName); break; case enumDataType.UInt64: _dataProviderReader = new DataProviderReaderUInt64(_tileSetting.TileSize, _selectedBandNos, _dataProvider, _stretcherProvider, _colorTableName); break; case enumDataType.Int64: _dataProviderReader = new DataProviderReaderInt64(_tileSetting.TileSize, _selectedBandNos, _dataProvider, _stretcherProvider, _colorTableName); break; case enumDataType.Float: _dataProviderReader = new DataProviderReaderFloat(_tileSetting.TileSize, _selectedBandNos, _dataProvider, _stretcherProvider, _colorTableName); break; case enumDataType.Double: _dataProviderReader = new DataProviderReaderDouble(_tileSetting.TileSize, _selectedBandNos, _dataProvider, _stretcherProvider, _colorTableName); break; } }