using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace GpsTestApp { public static class Extensions { public static void InvokeIfRequired(this Control c, Action a) { if (c.InvokeRequired) { c.Invoke(new MethodInvoker(() => { InvokeIfRequired(c, a); })); return; } try { if (!c.IsHandleCreated) { IntPtr i = c.Handle; } // See links above - handle is not created, will cause cross-thread exceptions a.Invoke(); } catch (Exception ex) { } } } }