c# - 在 catch block 中调用异步方法

标签 c# .net silverlight async-await

<分区>

我在异步环境 (Silverlight) 中工作,并拥有用于在服务器端存储异常的 Logger 服务。

考虑这段代码:

    catch (Exception ex)
    {
        this.loggerService.LogAsync(ex, "NotesService");
    }

记录器看起来像这样:

public interface ILoggerService
    {
        Task LogAsync(Exception ex, string tag);
    }

如果我像上面那样写代码(即使 catch 是在 async 方法中)我也不能把 await 放在那里。 如果我按原样保留它,我会收到警告说执行会继续,等等,等等。哪个好,我不在乎。我只需要记录错误。

我可以只抑制这个警告,还是应该为此想出更好的模式?

最佳答案

由于您绝对确定要忽略来自 LogAsync 的完成/错误,您可以执行以下简单的解决方法:

catch (Exception ex)
{
    var _ = this.loggerService.LogAsync(ex, "NotesService");
}

关于c# - 在 catch block 中调用异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15373353/

相关文章:

c# - 使用异步代码测量 CPU 密集型时间

c# - 从另一个表单调用一个表单的方法,如果单击 Form2 上的按钮,则填充 Form1 上的组合框

c# - Silverlight 中的同步 WebClient 下载

c# - C# 集合是否始终强制执行顺序?

c# - 从 2.2 迁移到 3.1 后 EF Core 出现问题

c# - 代码重复的最佳实践 c#

c# - String.Format:输入字符串的格式不正确

c# - 如何在特定条件下隐藏 UWP 弹出窗口

silverlight - 在 Windows Phone 7 中本地化图像

wpf - 您知道使用MVVM的任何实际有用的WPF/Silverlight应用程序吗?