Async/wait, ThreadPool и SetApartmentState

Я хотел бы использовать await Task.Run(DoWork), чтобы выполнить некоторую повторяющуюся однопотоковую вычислительную работу над ThreadPool. Проблема в том, что мне нужно использовать объекты STA COM внутри DoWork, поэтому, я думаю, я не могу использовать ThreadPool, потому что я не могу изменить состояние квартиры в потоке пула.

Как я могу использовать async/await в этом сценарии? Создание собственного пула потоков STA с настраиваемым планировщиком задач звучит как чрезмерная работа.