运行 WCF 时使用 UI 线程

本文关键字:UI 线程 WCF 运行 | 更新日期: 2023-09-27 18:35:05

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

拖放注册不成功。当前线程必须设置为 可以进行 OLE 调用之前的单线程单元 STA 模式。确保 你的主函数上面标记了 STAThreadAttribute。

我在程序中的主要函数具有 STAThread 属性。 我能够通过在我的方法中执行以下操作来使其工作。

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

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

运行 WCF 时使用 UI 线程

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

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