using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; namespace PSLauncher { public static class ISynchronizeInvokeExtensions { public static void SafeInvoke(this T @this, Action action) where T : ISynchronizeInvoke { if (@this.InvokeRequired) { @this.Invoke(action, new object[] { @this }); } else { action(@this); } } } }