CA2232: Označte vstupní bod modelu Windows Forms pomocí STAThread
Zboží | Hodnota |
---|---|
RuleId | CA2232 |
Kategorie | Microsoft.Usage |
Změna způsobující chybu | Nenarušující |
Příčina
Sestavení odkazuje na System.Windows.Forms obor názvů a jeho vstupní bod není označen atributem System.STAThreadAttribute .
Popis pravidla
STAThreadAttribute označuje, že model vláken MODELU COM pro aplikaci je jednovláknový byt. Tento atribut musí být přítomen u vstupního bodu jakékoliv aplikace, která používá model Windows Forms. Pokud je vynechán, nemusí součásti systému Windows pracovat správně. Pokud atribut není k dispozici, aplikace používá model vícevláknového apartmánu, který není podporován pro model Windows Forms.
Poznámka:
Projekty jazyka Visual Basic, které používají rozhraní Application Framework, nemusí označit Metodu Main pomocí STAThread. Kompilátor jazyka Visual Basic ho provede automaticky.
Jak opravit porušení
Chcete-li opravit porušení tohoto pravidla, přidejte STAThreadAttribute atribut do vstupního bodu. System.MTAThreadAttribute Pokud je atribut k dispozici, odeberte ho.
Kdy potlačit upozornění
Pokud vyvíjíte pro rozhraní .NET Compact Framework, pro které STAThreadAttribute je atribut nepotřebný a nepodporuje se, je bezpečné potlačit upozornění z tohoto pravidla.
Příklad
Následující příklady ukazují správné použití 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);
}
}
}
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro