我正在创建一个自动化测试运行应用程序。在应用程序的这一部分,我正在使用轮询服务器。它通过不断地轮询 Web 服务器来确定何时应该运行新的自动化测试(对于我们的 GUI 应用程序的夜间自动化运行)。
当轮询服务器看到一个请求时,它会下载所有必要的信息,然后在后台工作程序中执行测试运行。Clipboard.Clear()
问题是测试运行的一部分具有在后台工作线程中发生的OLE、COM 和其他调用(例如, )。当其中一个调用发生时,会发生以下异常:
在进行 OLE 调用之前,必须将当前线程设置为单线程单元 (STA) 模式。确保您的 Main 函数上标记了 STAThreadAttribute。
如何将后台工作线程标记为单线程单元?我的 Program.cs 中的 Main 调用显然已经具有该属性。