/// <summary> /// Dispose implementation which ensures the native window is destroyed, and /// managed resources detached. /// </summary> private void Dispose(bool disposeManaged) { if (!disposed) { lock (disposeLock) { if (!disposed) { disposed = true; subscriptionService.Dispose(); if (disposeManaged) { if (MessageReceived != null) { // remove all handlers var del = MessageReceived.GetInvocationList(); foreach (Listeners.XDMessageHandler msg in del) { MessageReceived -= msg; } } } } } } }
private void Dispose(bool disposeManaged) { if (disposed) { return; } lock (disposeLock) { if (disposed) { return; } disposed = true; subscriptionService.Dispose(); if (!disposeManaged || MessageReceived == null) { return; } var del = MessageReceived.GetInvocationList(); foreach (var item in del) { var msg = (Listeners.XDMessageHandler)item; MessageReceived -= msg; } } }
public static void CleanUp() { if (_subscriptionService != null) { _subscriptionService.Dispose(); } }
protected override void OnDisposed() { _subscriptionService.Dispose(); }