Udostępnij przez


Błąd kompilatora WFO5002

Wersja wprowadzona: .NET 9

System.Windows.Forms.Form.ShowAsync jest przeznaczony tylko do celów ewaluacyjnych i może ulec zmianie lub usunięciu w przyszłych aktualizacjach. Pomiń tę diagnostykę, aby kontynuować.

Ten błąd kompilatora jest generowany podczas korzystania z dowolnej z następujących metod:

  • Form.ShowAsync
  • Form.ShowDialogAsync
  • TaskDialog.ShowDialogAsync

Interfejs API asynchroniczny formularzy systemu Windows jest obecnie eksperymentalny i może ulec zmianie. Ten błąd jest generowany, aby zrozumieć implikacje pisania kodu korzystającego z tych interfejsów API. Aby kontynuować, należy stłumić błąd. Aby uzyskać więcej informacji na temat tego interfejsu API, zobacz Async forms (Formularze asynchroniczne).

Uwaga / Notatka

Ten błąd kompilatora nie ma już zastosowania począwszy od platformy .NET 10.

Przykład

Poniższy przykład generuje WFO5002:

private async void button1_Click(object sender, EventArgs e)
{
    Form1 newDialog = new();
    await newDialog.ShowAsync();
}

Aby naprawić ten błąd

Uaktualnij do platformy .NET 10 lub nowszej, gdzie ta funkcja nie jest już uznawana za eksperymentalną.

—lub —

Pomiń błąd i włącz dostęp do interfejsu API przy użyciu jednej z następujących metod:

  • Ustaw stopień ważności reguły w pliku .editorConfig.

    [*.{cs,vb}]
    dotnet_diagnostic.WFO5002.severity = none
    

    Aby uzyskać więcej informacji na temat plików konfiguracji edytora, zobacz Pliki konfiguracji dla reguł analizy kodu.

  • Dodaj kod PropertyGroup do pliku projektu.

    <PropertyGroup>
        <NoWarn>$(NoWarn);WFO5002</NoWarn>
    </PropertyGroup>
    
  • Zablokuj w kodzie za pomocą dyrektywy #pragma warning disable WFO5002:

    private async void button1_Click(object sender, EventArgs e)
    {
        Form1 newDialog = new();
    #pragma warning disable WFO5002
        await newDialog.ShowAsync();
    #pragma warning restore WFO5002
    }