void PositionChanged(object sender, PositionEventArgs e) { lock (syncRoot) { GpsPos = e.Position; // We don't receive elevation and position simultaneously, so // take the last known elevation. AddPosSample(new Position3D(Elevation, e.Position)); } Debug.WriteLine("Position changed: " + GpsPos.ToString()); NotifyOfGpsDataUpdate(); }