Begininvoke没有endinvoke和后台线程开始差异

时间:2014-07-29 07:11:17

标签: c# multithreading invoke begininvoke

我在这里看到了一些关于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();

0 个答案:

没有答案