Esempio n. 1
0
 private void CreateTileLoadWorker()
 {
     _canvas.OnEnvelopeChanged += _canvasEnvelopeChanged;
     _asyncRefreshCanvas        = new AsyncRefreshCanvasHandler(TryRefreshCanvas);
     _loadWorker         = new BackgroundWorker();
     _loadWorker.DoWork += new DoWorkEventHandler(_loadWorker_DoWork);
     _loadWorker.WorkerSupportsCancellation = true;
     _loadWorker.WorkerReportsProgress      = true;
     _loadWorker.ProgressChanged           += new ProgressChangedEventHandler(_loadWorker_ProgressChanged);
 }
Esempio n. 2
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;
 }