编译器错误WFO5002

“System.Windows.Forms.Form.ShowAsync”仅用于评估目的,在将来的更新中可能会更改或删除。 取消此诊断以继续。

使用以下任一方法时,将生成此编译器错误:

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

Windows 窗体异步 API 目前是实验性的,可能会更改。 生成此错误,以便你了解编写使用这些 API 的代码的含义。 必须禁止显示此错误才能继续。 有关此 API 的详细信息,请参阅 异步表单

示例

以下示例生成WFO5002:

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

更正此错误

禁止显示错误,并使用以下任一方法启用对 API 的访问:

  • 在 .editorConfig 文件中设置规则的严重性。

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

    有关编辑器配置文件的详细信息,请参阅 用于代码分析规则的配置文件。

  • 将以下内容 PropertyGroup 添加到项目文件以禁止显示错误:

    XML
    <PropertyGroup>
        <NoWarn>$(NoWarn);WFO5002</NoWarn>
    </PropertyGroup>
    
  • 使用 #pragma warning disable WFO5002 指令取消代码中的错误:

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