private async Task LoadTilesFromQueueAsync(Func <Tile, Task> loadTileFunc) { Tile tile; while (tileQueue.TryDequeue(out tile)) { try { await loadTileFunc(tile); } catch (Exception ex) { Debug.WriteLine("TileImageLoader: {0}/{1}/{2}: {3}", tile.ZoomLevel, tile.XIndex, tile.Y, ex.Message); } } Interlocked.Decrement(ref taskCount); }
private async Task LoadTilesFromQueueAsync() { Tile tile; while (tileQueue.TryDequeue(out tile)) { try { await LoadTileImageAsync(tile, TileSource, SourceName).ConfigureAwait(false); } catch (Exception ex) { Debug.WriteLine("TileImageLoader: {0}/{1}/{2}: {3}", tile.ZoomLevel, tile.XIndex, tile.Y, ex.Message); } } Interlocked.Decrement(ref taskCount); }