相关疑难解决方法(0)

禁止"警告CS4014:因为没有等待此调用,所以继续执行当前方法......"

这不是"如何在没有等待的情况下安全地调用C#中的异步方法"的副本.

我如何很好地抑制以下警告?

警告CS4014:由于未等待此调用,因此在完成调用之前,将继续执行当前方法.考虑将'await'运算符应用于调用的结果.

一个简单的例子:

static async Task WorkAsync()
{
    await Task.Delay(1000);
    Console.WriteLine("Done!");
}

static async Task StartWorkAsync()
{
    WorkAsync(); // I want fire-and-forget 

    // more unrelated async/await stuff here, e.g.:
    // ...
    await Task.Delay(2000); 
}
Run Code Online (Sandbox Code Playgroud)

我尝试过但不喜欢的事情:

static async Task StartWorkAsync()
{
    #pragma warning disable 4014
    WorkAsync(); // I want fire-and-forget here
    #pragma warning restore 4014
    // ...
}

static async Task StartWorkAsync()
{
    var ignoreMe = WorkAsync(); // I want fire-and-forget here
    // ...
}
Run Code Online (Sandbox Code Playgroud)

更新后,由于原始接受的答案 …

c# async-await

145
推荐指数
6
解决办法
4万
查看次数

标签 统计

async-await ×1

c# ×1