I've seen a few questions here about begininvoke and fire and forget and such and also a question about endinvoke if it has to follow a begininvoke or not. For more on the last part here: Must every BeginInvoke be followed by an EndInvoke?
My question is strongly related to that and still a bit more: I want to create a fire and forget invoke (I don't care there if the invoke finishes or not as the part calling the invoke is not able to handle this at all also as the invoked part starts a dialog it is up to the user when that invoke ends and not up to the program (except application exits).
So my question is now here: Is there any difference between the two options using startinvoke without endinvoke or using a threaded invoke?
Startinvoke without endinvoke:
mainForm.BeginInvoke((MethodInvoker)delegate { mainForm.DoSomething(); });
Threaded invoke:
Thread t = new Thread(() => mainForm.Invoke((MethodInvoker)delegate { mainForm.DoSomething(); }));
t.IsBackground = true;
t.Start();