2010-11-02 120 views
0

我刚添加了一个ElementHost到一个Windows窗体(表单中还有一些其他的C#代码)。然后它给了我错误“调用线程必须是STA,因为很多UI组件都需要这个。”我改变了线程到STA,但它阻止了其他东西......反正有没有触及任何其他代码使元素工作?ElementHost给我“调用线程必须是STA,因为很多UI组件都需要这个。”

这里是我的代码怎么改线:

public UCClientSummary() 
    { 
     InitializeComponent(); 

     Thread thread = new Thread(createElementHost); 
     thread.SetApartmentState(ApartmentState.STA); 
     thread.Start(); 
     thread.Join(); 


    } 

    public void createElementHost() 
    { 
     ElementHost elementHost = new ElementHost(); 
     elementHost.Dock = DockStyle.Fill; 
     LDControls.ucCell uc = new LDControls.ucCell(); 
     elementHost.Child = uc; 
     this.Controls.Add(elementHost); 
    } 

回答

0

添加[STAThread] attrribute在主的面前。 我不确定切换线程之间的公寓状态的作品。

这可能是后台工作人员已经在错误的公寓状态下创建。

心连心

马里奥

+0

谢谢马里奥。我会尝试。 – Sen 2010-11-04 13:58:36

相关问题