public void BeginInvoke(WaitCallback method, string errorMessage) { InvokeObjectHandler entry = new InvokeObjectHandler(method, errorMessage); queue.Enqueue(entry); NativeMethods.PostMessage(handle, NativeMethods.CN_BEGININVOKE, IntPtr.Zero, IntPtr.Zero); }
public void Invoke(WaitCallback method, object parameter) { InvokeObjectHandler entry = new InvokeObjectHandler(method, parameter); queue.Enqueue(entry); NativeMethods.SendMessage(handle, NativeMethods.CN_INVOKE, IntPtr.Zero, IntPtr.Zero); }
public void ExecuteRequest() { InvokeObjectHandler method = null; lock (this.queue) { if (queue.Count > 0) { method = queue.Dequeue(); } } if (method != null) { try { if (method.Entry != null) { method.Entry(method.Parameter); } } catch (Exception ex) { InvocationException ie = new InvocationException(method.ErrorMessage, ex); Application.OnThreadException(ie); } } }