0

我正在尝试使用 WCF 来测试我的程序。我遇到的问题是当我通过 WCF 调用方法时,它们在工作线程上运行。我尝试测试的方法需要在 UI 线程中运行,否则会出现以下错误:

DragDrop 注册没有成功。当前线程必须设置为单线程单元 STA 模式,然后才能进行 OLE 调用。确保您的 main 函数上标记了 STAThreadAttribute。

我的程序中的主要功能具有 STAThread 属性。通过在我的方法中执行以下操作,我能够让它工作。

public void MyMethod(){
if (InvokeRequired) {
   Invoke(new MethodInvoker(MyMethod));
   return;
   }
   //Do stuff
}

我不想对程序中的每个方法都进行此更改。有没有办法让 WCF 每次都在 UI 线程上运行方法?

4

1 回答 1

1

有没有办法让 WCF 每次都在 UI 线程上运行方法?

不会。即使您将 WCF 配置为作为 SingleThreaded 运行,它仍然是服务器线程。

于 2013-10-11T21:13:19.963 回答