Это невозможно, BGW использует поток пула потоков. Потоки ТП всегда МТА, их нельзя изменить. Вам придется использовать обычный поток, вызвать SetApartmentState (), прежде чем запустить его. Этот поток также должен прокачать цикл сообщений, вызвать Application.Run ().
Возможно, вам следует подумать о вызове этого кода из потока пользовательского интерфейса. Потому что, по всей вероятности, COM-сервер в любом случае выполняет свои методы в потоке пользовательского интерфейса. Маршалинг вызовов из рабочего потока в поток STA, который создал COM-сервер, является автоматическим, COM позаботится об этом.
Или возьми быка за рога и соберись. Вы можете создать свой собственный поток STA, чтобы дать серверу счастливый дом. Вы найдете код в этой записи , обязательно создайте COM-объект в переопределении Initialize ().