在catch块中调用异步方法

时间:2013-03-12 22:18:29

标签: c# .net silverlight async-await

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

考虑以下代码:

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

Logger看起来像这样:

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

如果我像上面那样编写代码(即使是异步方法中的catch)我也无法等待。 如果我按原样离开,我会收到警告说继续执行,等等,等等。哪个好,我不在乎。我只需要记录错误。

我可以暂时禁止这个警告,还是应该为此提出更好的模式?

1 个答案:

答案 0 :(得分:1)

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

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