CA2232: Windows Forms-Einstiegspunkte mit STAThread markieren.
Element | Wert |
---|---|
RuleId | CA2232 |
Category | Microsoft.Usage |
Unterbrechende Änderung | Nicht unterbrechend |
Ursache
Eine Assembly verweist auf den System.Windows.Forms-Namespace, und ihr Einstiegspunkt ist nicht mit dem System.STAThreadAttribute-Attribut markiert.
Regelbeschreibung
STAThreadAttribute gibt an, dass STA (Singlethread-Apartment) als COM-Threadingmodell für eine Anwendung verwendet wird. Dieses Attribut muss am Einstiegspunkt jeder Anwendung vorhanden sein, die Windows Forms verwendet. Wird es weggelassen, funktionieren die Windows-Komponenten eventuell nicht richtig. Wenn das Attribut nicht vorhanden ist, verwendet die Anwendung das Multithread-Apartmentmodell, das für Windows Forms nicht unterstützt wird.
Hinweis
Visual Basic-Projekte, die das Anwendungsframework verwenden, müssen die Main-Methode nicht mit STAThread markieren. Der Visual Basic-Compiler erledigt dies automatisch.
Behandeln von Verstößen
Um einen Verstoß gegen diese Regel zu beheben, fügen Sie dem Einstiegspunkt das STAThreadAttribute-Attribut hinzu. Wenn das System.MTAThreadAttribute-Attribut vorhanden ist, entfernen Sie es.
Wann sollten Warnungen unterdrückt werden?
Eine Warnung dieser Regel kann sicher unterdrückt werden, wenn Sie für .NET Compact Framework entwickeln, für das das STAThreadAttribute-Attribut nicht erforderlich ist und nicht unterstützt wird.
Beispiel
Die folgenden Beispiele veranschaulichen die korrekte Verwendung von STAThreadAttribute:
using System;
using System.Windows.Forms;
namespace UsageLibrary
{
public class MyForm: Form
{
public MyForm()
{
this.Text = "Hello World!";
}
// Satisfies rule: MarkWindowsFormsEntryPointsWithStaThread.
[STAThread]
public static void Main()
{
MyForm aform = new MyForm();
Application.Run(aform);
}
}
}
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für