gpt4 book ai didi

c# - Async/Await 方法 - 无需等待方法执行

转载 作者:太空宇宙 更新时间:2023-11-03 22:47:52 27 4
gpt4 key购买 nike

我有一个用于发送通知的异步方法。但是我在调​​用方法时没有设置 await 关键字。因为不需要等待我的回复。

但是,它说,警告。 enter image description here

是需要加await关键字来解决还是忽略Warning?

最佳答案

如果您可以使用 C# 7 功能,请将其分配给“丢弃”变量:

_ = iPushNotificationService.SendPushNotification(objNotificationMessage);

如果您不能使用 C# 7 - 您可以将它分配给某个变量:

var t = iPushNotificationService.SendPushNotification(objNotificationMessage);

或者使用这样的扩展方法:

public static class TaskExtensions {
public static void Ignore(this Task t) {

}
}

然后:

iPushNotificationService.SendPushNotification(objNotificationMessage).Ignore();

请注意,您可能对结果不感兴趣,但如果它未能发送该通知(至少记录该通知),您可能会感兴趣。在这种情况下,您可以使用 ContinueWith:

SendNotification().ContinueWith(c =>
{
// do something with c.Exception
}, TaskContinuationOptions.OnlyOnFaulted).Ignore();

或者将其移动到单独的异步方法中:

static async void SendNotification() { // if you hate async void - use Task
try {
await iPushNotificationService.SendPushNotification(objNotificationMessage);
}
catch (Exception ex {
// log it
}
}

然后调用它。

关于c# - Async/Await 方法 - 无需等待方法执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49047012/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com