Das ShowDialog bleibt mit:
System.Threading.ThreadStateException wurde nicht behandelt.
Message=„Für den aktuellen Thread muss der STA-Modus (Single Thread Apartment) festgelegt werden, bevor OLE-Aufrufe ausgeführt werden können. Stellen Sie sicher, dass die Hauptfunktion mit STAThreadAttribute gekennzeichnet ist. Diese Ausnahme wird nur ausgelöst, wenn ein Debugger mit dem Prozess verbunden ist.“
Was ist zu tuen? In einer anderen Anwendung klappt das einwandfrei.
mfg
Dirk.Pegasus
Version 8.0.50727.42 (RTM.050727-4200)
Microsoft .NET Framework
Version 2.0.50727
Installierte Edition: C# Express
Microsoft Visual C# 2005 76544-000-0000011-00126
Microsoft Visual C# 2005
Wie die Exception schon sagt, muss der Thread, in dem dieser Code ausgeführt wird, als STAThread gekennzeichnet sein.
Höchstwahrscheinlich (weil ich nicht annehme, dass Du den OpenFileDialog in einem separaten Thread aufrufst - lässt sich aber anhand des geposteten Codes nicht entscheiden) reicht es, wenn Du einfach vor Dein „Main“ die Zeile [STAThread]
einfügst.
Gruß,
Martin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
ja, ich habe das gleiche problem, sogar gleichfalls mit dem openfiledialog…ich weiss, dass der vorschlag im posting zuvor nix hilft, ich habe alle threadspezifischen attribute in meiner main-methode korrekt angegeben.
übrigens, ich weiss nicht, wie dein code zustande kam:
ich hatte ein projekt als stand-alone-solution (outputtype ‚exe‘) und als dll eingebunden in ein grösseres. das grössere konvertiert hat(te) gleichfalls openfiledialogs, die funktionieren immer noch (nach der konvertierung).
das stand-alone-solution - projekt hat eine klasse mehr, nämlich eine form in der der fehler beim aufruf des ofd passiert.
vielleicht lässt isch ja anhand von problem-ähnlichkeiten herausfinden was los ist.
wenn du eine lösung hast -> bitte mitteilen!
danke,
ich habe das problem identifiziert:
es tritt immer dann auf, wenn die .exe im gleichen verzeichnis wie die .dll liegt.
lösung ist daher in den beiden zuvor genannten solutions zwei verschiedene output-dirs anzugeben.
falls jemand eine erklärung für das phänomen hat…her damit!
werds nachher mal testen. Die Solution beinhaltet zwei „Start Forms“ die auch beide mal eine MAIN Routine (heißen die so?) hatten. Hab das auch VS 2003 konveriert in (keine Ahnung).