禁止显示“警告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);

}

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

// ...

}

,因为已经编辑了原始接受的答案,所以我已将接受的答案更改为使用C#7.0丢弃的答案,因为我认为ContinueWith这里不合适。每当我需要记录即发即弃操作的异常时,我都会使用Stephen

Cleary在此提出的更为复杂的方法。

回答:

使用C#7,您现在可以使用丢弃:

_ = WorkAsync();

以上是 禁止显示“警告CS4014:由于未等待此调用,因此将继续执行当前方法…” 的全部内容, 来源链接: utcz.com/qa/434554.html

回到顶部