public void ProcessTaskList()
        {
            while (!stopManager)
            {
                lock (taskList)
                {
                    int count = Math.Min(taskList.Count, MAX_THREAD_NUM);
                    for (int i = 0; i < count; i++)
                    {
                        MapTileIndex          mapTileIndex          = GetOneTask();
                        MapTileDownloadWorker mapTileDownloadWorker = new MapTileDownloadWorker(this, mapTileIndex);
                        mapTileDownloadWorker.DownloadMapTile();
                        //Thread downloadThread = new Thread(new ThreadStart(mapTileDownloadWorker.DownloadMapTile));
                        //downloadThread.Start();
                    }
                }

                lock (retryList)
                {
                    int count = Math.Min(retryList.Count, MAX_THREAD_NUM);
                    for (int i = 0; i < count; i++)
                    {
                        MapTileIndex          mapTileIndex          = GetOneTaskFromRetryList();
                        MapTileDownloadWorker mapTileDownloadWorker = new MapTileDownloadWorker(this, mapTileIndex);
                        mapTileDownloadWorker.DownloadMapTile();
                        //Thread downloadThread = new Thread(new ThreadStart(mapTileDownloadWorker.DownloadMapTile));
                        //downloadThread.Start();
                    }
                }
            }
        }
        public void ProcessTaskList()
        {
            while (!stopManager)
            {
                lock (taskList)
                {
                    int count = Math.Min(taskList.Count, MAX_THREAD_NUM);
                    for (int i = 0; i < count; i++)
                    {
                        MapTileIndex mapTileIndex = GetOneTask();
                        MapTileDownloadWorker mapTileDownloadWorker = new MapTileDownloadWorker(this, mapTileIndex);
                        mapTileDownloadWorker.DownloadMapTile();
                        //Thread downloadThread = new Thread(new ThreadStart(mapTileDownloadWorker.DownloadMapTile));
                        //downloadThread.Start();
                    }
                }

                lock (retryList)
                {
                    int count = Math.Min(retryList.Count, MAX_THREAD_NUM);
                    for (int i = 0; i < count; i++)
                    {
                        MapTileIndex mapTileIndex = GetOneTaskFromRetryList();
                        MapTileDownloadWorker mapTileDownloadWorker = new MapTileDownloadWorker(this, mapTileIndex);
                        mapTileDownloadWorker.DownloadMapTile();
                        //Thread downloadThread = new Thread(new ThreadStart(mapTileDownloadWorker.DownloadMapTile));
                        //downloadThread.Start();
                    }
                }
            }
        }