Я создаю автоматизированное тестовое приложение. В этой части приложения я работаю на сервере опроса. Он работает путем постоянного опроса веб-сервера, чтобы определить, когда должен запускаться новый автоматический тест (для ночных автоматизированных прогонов нашего графического интерфейса).
Когда сервер опроса видит запрос, он загружает всю необходимую информацию и затем выполняет тестовый прогон в фоновом работнике. Проблема в том, что часть тестового прогона имеет OLE, COM и другие вызовы (например, Clipboard.Clear()
), которые встречаются в потоке рабочего фона. При возникновении одного из этих вызовов возникает следующее исключение:
Текущий поток должен быть установлен в режим однопоточной квартиры (STA) до того, как вызовы OLE могут быть сделаны. Убедитесь, что ваша основная функция имеет STAThreadAttribute, отмеченный на нем.
Как я могу пометить фоновый рабочий поток как квартиру с одним потоком? Главный вызов в моей программе .cs, очевидно, уже имеет этот атрибут.