使用Wating从WPF应用程序打开InternetExplorer COM对象以执行一些自动化,但保持UI响应。这可能吗?

时间:2010-12-15 22:58:36

标签: c# wpf multithreading com

我有一个应用程序运行一个过程,需要打开一个Internet Explorer,转到一个URL,并在那里做一些东西,输入一些数据,然后返回。
这通常需要一段时间(需要填写几页,无所谓)。问题是,在完成此过程时,调用应用程序(标准wpf应用程序)UI无响应/冻结。当进程返回时,我有一些信息需要在其中一个WPF应用程序的对象中设置

主要的问题是,由于IE需要从STA线程中调用,如果我尝试异步或同步从调度程序中调用它,由于某种原因UI被阻止(我尝试过不同的DispatcherPriority-es但没有'好运)。 如果我启动一个新的BackgroundWorker,该线程处于MTA模式(我无法切换回来),所以有一个问题,我有一个例外

我真的迷失在这里,有人可以对此有所启发吗?也许我想做的事情根本不可能。

1 个答案:

答案 0 :(得分:0)

您是否尝试过创建自己的后台线程(不依赖于BackgroundWorker),并将其ApartmentState设置为STA?