Tiles的缓冲区,用来存放待请求的Tiles。结构类似于二维数组, 第一维是一个Dictionary,Key为图层id;第二维是一个双向链表,存放这个图层中的Tile。 在弹出Tile时,取第一个长度大于0的链表的最后一个。
 private QueueSystem()
 {
     _howToDownload = new Dictionary<string, Func<Tile, Task<Tile>>>();
     _tilesBuffer = new QueueBuffer();
     _memoryCache = new LruCache<string, byte[]>(1000);
     _storageCache = new Dictionary<string, IOfflineStorage>();
     _executantPool = new ExecutantPool(6);
     RetryMaxCount = 5;
     _executantPool.DownloadImageCompleted += _executantPool_DownloadImageCompleted;
 }
 public ExecutantPool(int count)
 {
     _ss = new SemaphoreSlim(count);
     _requestBuffer = new QueueBuffer();
     _downloading = new Dictionary<string, Tile>();
 }