Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Watin with system.Threading.tasks.Task抛出ThreadStateException_C#_Multithreading_Watin - Fatal编程技术网

C# Watin with system.Threading.tasks.Task抛出ThreadStateException

C# Watin with system.Threading.tasks.Task抛出ThreadStateException,c#,multithreading,watin,C#,Multithreading,Watin,我正在使用Watin内部任务,该任务引发异常 ThreadStateException with an error message of 'The CurrentThread needs to have its ApartmentState set to ApartmentState.STA to be able to automate Internet Explorer' 我的代码是 Task task = Task.Factory.StartNew(() =>

我正在使用Watin内部任务,该任务引发异常

ThreadStateException with an error message of 'The CurrentThread needs to have its ApartmentState set to ApartmentState.STA to be able to automate Internet Explorer'
我的代码是

 Task task = Task.Factory.StartNew(() =>
                    {
              try{
                     string  Url="www.google.com";
                     IE ie = new IE(Url);
                }
               catch (Exception ex)
             {
             throw ex; //ThreadStateException 
             }    
});
我如何解决这个问题?

我正在尝试谷歌搜索,但找不到解决方案。

使用异步方法等待。您可以从web上获得许多这样的示例。

使用异步方法和wait。您可以从web上获得很多这样的示例。

代码没有“错误”。请阅读WatIn文档:

从文件中:

线程不是STA线程时WatiN的行为

创建的实例时,WatiN将抛出ThreadStateException WatiN.Core.IE类,帮助您提醒设置ApartmentState 停止

代码没有“错误”。请阅读WatIn文档:

从文件中:

线程不是STA线程时WatiN的行为

创建的实例时,WatiN将抛出ThreadStateException WatiN.Core.IE类,帮助您提醒设置ApartmentState 停止


如果您关心任务需要在什么类型的线程上运行,那么您可能应该只创建一个线程。您可以将其包装到一个方法中,该方法使用
TaskCompletionSource
来公开
任务。看看你是否关心任务需要运行在什么类型的线程上,也许你应该创建一个线程。您可以将其包装到一个方法中,该方法使用
TaskCompletionSource
来公开
任务。看见