AFAIK, sollte alle Windows Forms-Anwendung die [STAThread]
Richtlinie über ihre Main()
Methode setzen.STAThread Anforderung für Windows-Formulare
Es gibt jedoch eine Ausnahme. Wir schreiben Anwendungen für Windows Mobile-Geräte mit dem Compact Framework. Compact Framework unterstützt nicht einmal die [STAThread]
Direktive, es hat nur die [MTAThread]
. Trotzdem habe ich dort nie Probleme gehabt.
Jetzt, um es einen Schritt weiter zu gehen, können Sie auch Compact Framework-Anwendungen auf einem vollständigen Windows-System ausführen. Ich denke, dass in diesem Fall das vollständige .NET-Framework verwendet wird.
An diesem Punkt führen wir Code mit einem MTA
Appartment-Status, der Windows-Formulare auf einem vollständigen Windows-System verwendet. Das bringt mich zu der Frage, , wenn eine kompakte Framework-Anwendung auf einem vollständigen Windows-Betriebssystem ausgeführt wird, warum beschweren sie sich nicht über die fehlende [STAThread]
Direktive?
Siehe https://social.msdn.microsoft.com/Forums/en-US/d5b637f4-56f6-417a-a004-851c8e7ca01f/stathread-can-not-be-found- but-where-is-it? forum = netfxcompact "Nein, Sie verpassen nichts - es gibt kein solches Attribut auf NETCF und es gibt keine Möglichkeit, STA-Verhalten zu erzwingen. MTA ist der einzige unterstützte Modus und in der Regel benötigen Sie keine STA auf NETCF." – josef