При вызове saveFileDialog.ShowDialog()
в фоновом потоке я получаю следующее исключение:
Текущий поток должен быть установлен на один (STA) до OLE звонки могут быть сделаны. Убедитесь, что ваш Основная функция имеет STAThreadAttribute отмеченные на нем.
В соответствии с этим:
Чтобы устранить проблему, вставьте утверждение:
Threading.Thread.CurrentThread.ApartmentState = Threading.ApartmentState.STA;
в правом верхнем углу перед Application.Run.
Но выражение Application.Run находится в Program.cs, который, похоже, сгенерирован кодом, поэтому любые изменения могут быть неожиданно потеряны. Кроме того, я не мог найти способ установить текущий поток в STA в свойствах проекта или основной формы, но, возможно, я ищу не в том месте.
Каким образом можно вызвать saveFileDialog.ShowDialog()
в фоновом потоке?