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