Поделиться через


Ошибка компилятора WFO5002

Введена версия : .NET 9

system.Windows.Forms.Form.ShowAsync предназначен только для оценки и подлежит изменению или удалению в будущих обновлениях. Отключайте эту диагностику, чтобы продолжить.

Эта ошибка компилятора возникает при использовании любого из следующих методов:

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

Асинхронный API Windows Forms в настоящее время экспериментальный и подлежит изменению. Эта ошибка создается, чтобы понять последствия написания кода, использующего эти API. Чтобы продолжить, необходимо подавить ошибку. Дополнительные сведения об этом API см. в разделе Async forms.

Пример

Данный пример генерирует WFO5002:

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

Исправление ошибки

Отключите ошибку и включите доступ к API с помощью любого из следующих методов:

  • Задайте серьезность правила в файле .editorConfig .

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

    Дополнительные сведения о файлах конфигурации редактора см. в разделе "Файлы конфигурации" для правил анализа кода.

  • Добавьте следующий элемент PropertyGroup в файл проекта.

    <PropertyGroup>
        <NoWarn>$(NoWarn);WFO5002</NoWarn>
    </PropertyGroup>
    
  • Подавление в коде с помощью директивы #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
    }