private async void TimerHasTicked() { this.driver = await Ride2GoService.GetDriverUpdate(pollCount); var driverPosition = new Position() { Latitude = driver.Lat, Longitude = driver.Lon }; var routeResult = await Ride2GoService.GetRoute(driverPosition, this.riderPosition, null); this.InvokeOnMainThread( () => { var annotation = new BasicMapAnnotation(new CLLocationCoordinate2D(driver.Lat, driver.Lon), driver.Name); this.MapView.RemoveAnnotations(this.MapView.Annotations); this.MapView.AddAnnotation(annotation); this.TimeLabel.Text = routeResult.Eta; pollCount++; }); if (pollCount > 2) { this.timer.Elapsed -= TimerTick; Application.PresentOKAlert("Driver arrived", "Look for the blinking car", this, () => { }); this.InvokeOnMainThread(() => { this.TimeLabel.Text = "arrived"; }); Ride2GoService.MakeTheCarBlink(); } }