在ASP.NET MVC中触发并忘记异步方法

在ASP.NET MVC中触发并忘记异步方法,第1张

在ASP.NET MVC中触发并忘记异步方法

首先,让我指出在ASP.NET应用程序中“解雇”几乎总是一个错误。如果您不在乎是否

DeleteFooAsync
真正完成 *** 作,那么“开火即忘”只是可接受的方法。

如果您愿意接受该限制,那么我的博客上有一些代码可以在ASP.NET运行时中注册任务,并且可以接受同步和异步工作。

您可以编写一次性包装器方法来记录异常,如下所示:

private async Task LogExceptionsAsync(Func<Task> pre){  try  {    await pre();  }  catch(Exception exception)  {    m_log.Error("Call failed: " + exception.ToString());  }}

然后

BackgroundTaskManager
像这样从我的博客中使用:

BackgroundTaskManager.Run(() => LogExceptionsAsync(() => DeleteFooAsync()));

另外,您可以保留

TaskScheduler.UnobservedTaskException
并像这样调用它:

BackgroundTaskManager.Run(() => DeleteFooAsync());


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4901257.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存