public void Dispose() { OnDisposed(this, EventArgs.Empty); foreach (var del in OnDisposed.GetInvocationList()) { Delegate.RemoveAll(del, del); } }