Exemplo n.º 1
0
        public static void InitializeTile(Tile tile)
        {
            bool loaded = false;

            while (!loaded && TileCache.running)
            {
                WaitingTileQueueMutex.WaitOne();

                if (CountToLoad > 0)
                {
                    CountToLoad--;
                    CountToLoad = Math.Max(0, CountToLoad);
                    // CountToLoad = 0;
                    loaded = true;
                }

                WaitingTileQueueMutex.ReleaseMutex();

                if (loaded)
                {
                    if (tile != null)
                    {
                        tile.CreateGeometry(Earth3d.MainWindow.RenderContext11, false);
                        tilesLoadedThisFrame++;
                    }
                }
                else
                {
                    WaitingTileQueueEvent.WaitOne();
                }
            }
        }
Exemplo n.º 2
0
 public static void ShutdownQueue()
 {
     if (TileCache.running)
     {
         TileCache.running = false;
         WaitingTileQueueEvent.Set();
         Thread.Sleep(2000);
         for (int i = 0; i < THREAD_COUNT; i++)
         {
             WaitingTileQueueEvent.Set();
             queueThreads[i].Abort();
         }
     }
     return;
 }