【发布时间】:2009-08-15 00:54:38
【问题描述】:
最近,我遇到了这种情况,我想在另一个线程(不是主/UI 线程)上显示一个表单。我使用了线程池线程。该表单承载了一个 RCW(用于 COM 组件)。实例化表单给了我一个例外,即线程必须是 STA。我试图将公寓状态设置为 STA。但是,这也不起作用。我终于明确地创建了一个线程并且工作正常(我使用了 ShowDialog 并且不需要创建消息泵)。
编辑:
我知道线程池线程是 MTA。但是,为什么不能设置为 STA? 只是好奇这个。
我脑海中突然出现的另一个问题:为什么我们在使用 Showdialog()(显示表单)时不需要消息泵
【问题讨论】:
标签: c# winforms multithreading