I get the following exception when calling saveFileDialog.ShowDialog()
in a background thread:
Current thread must be set to single thread apartment (STA) mode before OLE calls can be made. Ensure that your Main function has STAThreadAttribute marked on it.
According to this:
To fix the problem, insert the statement:
Threading.Thread.CurrentThread.ApartmentState = Threading.ApartmentState.STA;
in Main right before the Application.Run statement.
But the Application.Run statement is in Program.cs which seems to be generated code so any changes might be unexpectedly lost. Also, I could not find a way to set current thread to STA in the project or main form properties but maybe I am looking in the wrong place.
What is the proper way to call saveFileDialog.ShowDialog()
in a background thread?