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