Ich erhalte die folgende Ausnahme beim Aufruf saveFileDialog.ShowDialog()
in einem Hintergrund-Thread:
Aktueller Thread muss auf Single eingestellt sein Thread-Apartment-Modus (STA) versetzt werden, bevor OLE Aufrufe gemacht werden können. Stellen Sie sicher, dass Ihr Hauptfunktion das Attribut STAThreadAttribute markiert ist.
Nach Angaben von 今 :
Um das Problem zu beheben, muss ich Anweisung ein:
Threading.Thread.CurrentThread.ApartmentState = Threading.ApartmentState.STA;
i Anweisung Application.Run.
Aber die Anweisung Application.Run befindet sich in Program.cs, das anscheinend generierter Code ist, so dass alle Änderungen unerwartet verloren gehen könnten. Außerdem konnte ich in den Eigenschaften des Projekts oder des Hauptformulars keine Möglichkeit finden, den aktuellen Thread auf STA zu setzen, aber vielleicht suche ich ja an der falschen Stelle. Was ist der richtige Weg zum Aufruf von saveFileDialog.ShowDialog()
in einem Hintergrund-Thread?