private void EnsureStopped()
{
lock (this)
{
if (_locationManager != null)
{
_locationManager.Delegate = null;
_locationManager.StopUpdatingLocation();
if (CLLocationManager.HeadingAvailable)
_locationManager.StopUpdatingHeading();
_locationManager.Dispose();
_locationManager = null;
}
}
}