ScpDriverInstaller/Utilities/UiContext.cs (30 lines of code) (raw):

using System; using System.Windows; namespace ScpDriverInstaller.Utilities { public static class UiContext { public static void InvokeOnUiThread(Action action) { if (Application.Current.Dispatcher.CheckAccess()) { action(); } else { Application.Current.Dispatcher.Invoke(action); } } public static void BeginInvokeOnUiThread(Action action) { if (Application.Current.Dispatcher.CheckAccess()) { action(); } else { Application.Current.Dispatcher.BeginInvoke(action); } } } }