C# 我该如何修复错误:“quot;currentthread需要将其apartmentstate设置为apartmentstate.sta才能启动Internet Explorer;?

C# 我该如何修复错误:“quot;currentthread需要将其apartmentstate设置为apartmentstate.sta才能启动Internet Explorer;?,c#,nunit,watin,C#,Nunit,Watin,我在C#中有以下代码: 当我尝试用我的网站运行它时,它返回错误: “currentthread需要将其apartmentstate设置为 ApartmentState.sta能够启动Internet Explorer“ 通常,当使用除SetupFixture之外的任何东西时,都需要为其提供解决方案。但由于某些原因,它现在无法工作。您可以尝试启动一个新线程并设置其ApartmentState: var t = new Thread(new ThreadStart(ToDo)); t.SetApar

我在C#中有以下代码:

当我尝试用我的网站运行它时,它返回错误:

“currentthread需要将其apartmentstate设置为 ApartmentState.sta能够启动Internet Explorer“


通常,当使用除SetupFixture之外的任何东西时,都需要为其提供解决方案。但由于某些原因,它现在无法工作。

您可以尝试启动一个新线程并设置其ApartmentState:

var t = new Thread(new ThreadStart(ToDo));
t.SetApartmentState(ApartmentState.STA);
t.Start();
// Run synchronously by waiting for t to finish.
t.Join(); 
代表:

private void ToDo()
{
    // Do something...
}
或内联版本:

var t = new Thread(() => 
{
    // Do something...
});

如果包含以下行,则解决方案实际上相当简单:

[assembly: RequiresSTA] 
在页面顶部,它会将整个程序集设置为使用STA,并且不再抛出错误

[assembly: RequiresSTA]