我对如何在多线程应用程序中使用GUI有点困惑。线程,事件和GUI
我听说有一个叫做UI线程的东西。我认为这是我在应用程序启动时的主要执行线程。
我也听到(虽然我不是100%)在其他(非UI)线程上做UI的东西是一个非常糟糕的主意。
所以,如果我创建一个单独的线程,并且我想在其中调用MyForm myForm = new MyForm(); myForm.ShowDialog();
,那么需要做出什么更改才能使其“安全”?
此外,我有一些人告诉我,事件是在不同的线程上分解出来的。 (虽然我不确定我是否相信这一点。)如果他们是,那么我很困惑。我可以打开一个对话框(即在事件myForm.ShowDialog()
并没有什么真正可怕的情况发生。(也许这取决于如果事件委托被称为用Invoke
或BeginInvoke
?)
感谢您的所有伟大的答案!我希望我可以选择多个作为“正确”的答案。 – Vaccano 2010-12-02 19:33:13