You can use the current WindowsFormsSynchronizationContext
(available since .NET 2.0)
System.Threading.SynchronizationContext.Current.Post(delegate, state);
You should grab a reference to the context from your UI thread, and make it accessible to your other threads, which can then use it to execute code on the UI thread.
This is equivalent to BeginInvoke
.
For a Invoke
equivalent, use the Send
method instead.