protected override void Dispose(bool disposing) { try { if (disposing) { Logger.Info("LineDisplaySimulator", "Disposing class: " + this.ToString()); if (bt != null) { bt.Dispose(); bt = null; } } // Release the native unmanaged resources // WindowThread needs to be treated as an unmanaged resource because // it is a class that contain threads and windows and won't get collected // by the GC if (Window != null) { Window.Close(); } Window = null; } finally { base.Dispose(disposing); } }