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);
        }
    }
}