public void Dispose() { #region Guard if (this.disposed) { return; } #endregion if (this.IsRunning) { this.Stop(); } this.disposed = true; this.OnDisposed(EventArgs.Empty); }