我在C#中有以下代码:
namespace Tests
{
[SetUpFixture, RequiresSTA]
public class Setup
{
public IE Window = new IE("webpage");
[SetUp]
public void SetUp()
{
}
[TearDown]
public void TearDown()
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用我的网站运行它时,它返回错误:
"当前线程需要将其公寓状态设置为ApartmentState.sta才能启动Internet Explorer"
通常在使用除SetupFixture之外的任何东西时,需要将其作为解决方案.但由于某种原因,它现在不起作用.
Eme*_*ca. 10
如果您包含该行,该解决方案实际上最终变得相当简单:
[assembly: RequiresSTA]
Run Code Online (Sandbox Code Playgroud)
在页面顶部,它将设置整个程序集以使用STA,它不再抛出错误.
您可以尝试启动一个新线程并设置其ApartmentState:
var t = new Thread(new ThreadStart(ToDo));
t.SetApartmentState(ApartmentState.STA);
t.Start();
// Run synchronously by waiting for t to finish.
t.Join();
Run Code Online (Sandbox Code Playgroud)
代表:
private void ToDo()
{
// Do something...
}
Run Code Online (Sandbox Code Playgroud)
或内联版本:
var t = new Thread(() =>
{
// Do something...
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4013 次 |
| 最近记录: |