private static IList <TileInfo> GetTilesMissing(IEnumerable <TileInfo> tilesWanted, ITileCache <Tile <T> > memoryCache, Retries retries) { return(tilesWanted.Where( info => memoryCache.Find(info.Index) == null && !retries.ReachedMax(info.Index)).ToList()); }
private IList <TileInfo> GetTilesMissing(IEnumerable <TileInfo> tileInfos, MemoryCache <Feature> memoryCache, Retries retries) { var result = new List <TileInfo>(); foreach (var info in tileInfos) { if (retries.ReachedMax(info.Index)) { continue; } if (memoryCache.Find(info.Index) == null) { result.Add(info); } } return(result); }
private void FetchTile(TileInfo info, Retries retries) { if (retries.ReachedMax(info.Index)) { return; } lock (_tilesInProgress) { if (_tilesInProgress.Contains(info.Index)) { return; } _tilesInProgress.Add(info.Index); } retries.PlusOne(info.Index); _threadCount++; StartFetchOnThread(info); }
private void FetchTile(TileInfo info, Retries retries) { if (retries.ReachedMax(info.Index)) return; lock (_tilesInProgress) { if (_tilesInProgress.Contains(info.Index)) return; _tilesInProgress.Add(info.Index); } retries.PlusOne(info.Index); _threadCount++; StartFetchOnThread(info); }
private IList<TileInfo> GetTilesMissing(IEnumerable<TileInfo> tileInfos, MemoryCache<Feature> memoryCache, Retries retries) { var result = new List<TileInfo>(); foreach (var info in tileInfos) { if (retries.ReachedMax(info.Index)) continue; if (memoryCache.Find(info.Index) == null) result.Add(info); } return result; }