Mapsui.Providers.TileProvider.GetTileOnThread C# (CSharp) Method

GetTileOnThread() private method

private GetTileOnThread ( object parameter ) : void
parameter object
return void
        private void GetTileOnThread(object parameter)
        {
            var parameters = (object[])parameter;
            if (parameters.Length != 4) throw new ArgumentException("Four parameters expected");
            var tileProvider = (ITileProvider)parameters[0];
            var tileInfo = (TileInfo)parameters[1];
            var bitmap = (MemoryCache<byte[]>)parameters[2];
            var autoResetEvent = (AutoResetEvent)parameters[3];

            try
            {
                bitmap.Add(tileInfo.Index, tileProvider.GetTile(tileInfo));
            }
            catch (Exception ex)
            {
                Logger.Log(LogLevel.Error, ex.Message, ex);
                // todo: report back through callback
            }
            finally
            {
                _queue.Remove(tileInfo.Index);
                autoResetEvent.Set();
            }
        }