/// <summary> /// Handles the unloaded event. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> protected virtual void HandleUnloadedEvent(object sender, EventArgs e) { if (ElementDispatcher == null) { return; } ElementDispatcher.InvokeShutdown(); RemoveLogicalChild(Host); RemoveVisualChild(Host); ElementDispatcher = null; Element = null; }
public Task InvokeAsync(DispatcherPriority priority, Action action) { if (action == null) { return(Task.CompletedTask); } if (ElementDispatcher == null || ElementDispatcher.HasShutdownStarted || ElementDispatcher.HasShutdownFinished) { return(Task.CompletedTask); } if (Thread.CurrentThread != ElementDispatcher?.Thread) { return(ElementDispatcher?.BeginInvoke(action, priority).Task); } action?.Invoke(); return(Task.CompletedTask); }