我在这里看到了一些关于begininvoke和fire and forget等问题以及关于endinvoke的问题,如果它必须遵循begininvoke。 有关详细信息,请参阅最后一部分:Must every BeginInvoke be followed by an EndInvoke?
我的问题与此密切相关,还有一点: 我想创建一个fire并忘记调用(如果调用完成或不完成,我不在乎那里因为调用调用的部分根本无法处理这个,因为调用的部分启动了一个对话框,它是由调用结束时的用户而不是程序(应用程序退出除外)。
所以现在我的问题是:使用没有endinvoke的startinvoke或使用线程调用的两个选项有什么区别吗?
没有endinvoke的Startinvoke:
mainForm.BeginInvoke((MethodInvoker)delegate { mainForm.DoSomething(); });
线程调用:
Thread t = new Thread(() => mainForm.Invoke((MethodInvoker)delegate { mainForm.DoSomething(); }));
t.IsBackground = true;
t.Start();