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