Example #1
0
 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;
 }
Example #2
0
 public TileBitmapProvider(IRasterDrawing drawing, ICanvas canvas,
                           IRasterDataProvider dataProvider,
                           TileSetting tileSetting, int[] selectedBandNos,
                           GeoDo.RSS.Core.DrawEngine.CoordEnvelope originalEnvelope,
                           float originalResolutionX, float originalResolutionY,
                           IRgbStretcherProvider stretcherProvider, string colortablename)
 {
     _drawing               = drawing;
     _canvas                = canvas;
     _dataProvider          = dataProvider;
     _tileSetting           = tileSetting;
     _selectedBandNos       = selectedBandNos;
     _loadingName           = _dataProvider.fileName;
     _colorTableName        = colortablename;
     _tilesLocator          = new NearestTilesLocator(_dataProvider, originalEnvelope, originalResolutionX, originalResolutionY);
     _tileCacheManager      = new TileBitmapCacheManager();
     _canvasEnvelopeChanged = new EventHandler(CanvasEnvelopeChanged);
     _stretcherProvider     = stretcherProvider;
     CreateDataProviderReader();
     CreateTileLoadWorker();
 }