/// <summary>Disposes the object</summary> public override void Dispose() { var wasDisposed = IsDisposed; base.Dispose(); if (!wasDisposed) { gps.Error -= gps_Error; gps.GpsCommState -= gps_GpsCommState; gps.GpsSentence -= gps_GpsSentence; gps.Position -= gps_Position; gps.Satellite -= gps_Satellite; gps.Movement -= gps_Movement; gps = null; } }