Как мне настроить фоновый рабочий поток на однопоточную квартиру?

Я создаю приложение для автоматического запуска тестов. В этой части приложения я работаю на сервере опроса. Он работает, постоянно опрашивая веб-сервер, чтобы определить, когда следует запускать новый автоматический тест (для ночных автоматических запусков нашего приложения с графическим интерфейсом пользователя).

Когда сервер опроса видит запрос, он загружает всю необходимую информацию, а затем выполняет тестовый запуск в фоновом режиме. Проблема в том, что в части выполнения теста есть вызовы OLE, COM и другие (например, Clipboard.Clear () ), которые происходят в фоновом рабочем потоке. Когда происходит один из этих вызовов, возникает следующее исключение:

Текущий поток должен быть установлен в режим однопоточного подразделения (STA), прежде чем могут быть выполнены вызовы OLE. Убедитесь, что ваша функция Main имеет атрибут STAThreadAttribute.

Как я могу пометить фоновый рабочий поток как однопоточное подразделение? Вызов Main в моем Program.cs, очевидно, уже имеет этот атрибут.

26
задан abatishchev 14 February 2013 в 09:51
поделиться