У меня есть Winform с BackgroundWorker. BackgroundWorker, помимо прочего, должен сделать HTTP-вызов страницы, заполнить некоторые данные, отправить форму и получить HTML-код, который возвращается после «нажатия» кнопки отправки. Я столкнулся с рядом контрольно-пропускных пунктов при этом:
- Невозможно отправить данные, поскольку целевой веб-сервер 405 не поддерживает этот метод.
- Не могу снова использовать WebClient.UploadValues, поскольку веб-сервер не поддерживает POST.
- Невозможно использовать элемент управления WebBrowser, потому что BackgroundWorkers сосут в COM Interop, и выдается исключение, которое говорит, что он должен находиться в потоке STA (однопотоковая квартира)
- Невозможно запустить другой отдельный поток, потому что BW должен сидеть и ждать результата, прежде чем он сможет продолжить (Не могу, или, по крайней мере, я не знаю способ сделать это, который не потерпит крах)
- Невозможно изменить ApartmentState потока, потому что это BackgroundWorker, и он выдает, если сказано перейти в режим STA
Что я должен сделать, чтобы решить эту проблему?
[Редактировать]: точка входа в приложение уже помечена атрибутом [STAThread].