public void fire_ModeChange(ModeTypes type, string title) { if (ModeChanges != null && type != null && title != null) { logModeChange(type, title); try { ModeChanges.Invoke(this, new ModeEventArgs(type, title)); } catch { } switch (type) { case ModeTypes.Start: fire_ModeStarted(type, title); break; case ModeTypes.Abort: fire_ModeAborted(type, title); break; case ModeTypes.Finish: fire_ModeFinished(type, title); break; default: break; } } }