我正在创建一个自动化的测试运行应用程序。在这部分应用程序中,我正在使用一个轮询服务器。它的工作原理是不断轮询Web服务器以确定何时应该运行新的自动化测试(对于我们的GUI应用程序的夜间自动运行)。如何将背景工作线程设置为单线程公寓?
当轮询服务器看到一个请求时,它下载所有需要的信息,然后在后台工作者中执行测试运行。问题是测试运行的一部分有后台工作线程中发生的OLE,COM和其他调用(例如,Clipboard.Clear()
)。当发生这些调用之一时,会发生以下异常:
在进行OLE调用之前,当前线程必须设置为单线程单元(STA)模式。确保您的Main函数具有标记的STAThreadAttribute。
如何将后台工作线程标记为单线程公寓?我的Program.cs中的Main调用显然已经具有该属性。
`Clipboard.Clear()`是不是COM它是原生的Windows API – Aliostad 2011-01-13 21:08:29
剪贴板使用COM进行谈判。剪贴板数据和格式 – 2011-01-13 21:11:50