我正在創建一個自動化的測試運行應用程序。在這部分應用程序中,我正在使用一個輪詢服務器。它的工作原理是不斷輪詢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