public void RenderedTileHandler(object sender, RenderedTileEventArgs e) { lock (this) { ++this.tileCount; double newValue = 100.0 * ((double)(tileCount + 1) / (double)e.TileCount); if (newValue > 100.0) { newValue = 100.0; } if (this.IsHandleCreated) { BeginInvoke(new WaitCallback(SetValueHigher), new object[] { newValue }); } } }