Проблема, с которой вы сталкиваетесь, заключается в том, что большинство API фоновых потоков / рабочих потоков создают поток в состоянии многопоточной квартиры. Сообщение об ошибке указывает на то, что для элемента управления требуется, чтобы поток представлял собой однопотоковую квартиру.
Вы можете обойти это, самостоятельно создав поток и указав состояние квартиры STA в потоке.
var t = new Thread(MyThreadStartMethod);
t.SetApartmentState(ApartmentState.STA);
t.Start();