C#为WPF应用程序日志点火并忘记,在应答前处理退出

C#为WPF应用程序日志点火并忘记,在应答前处理退出,c#,fire-and-forget,C#,Fire And Forget,我有一个应用程序,它应该在退出到云函数时发送日志。这意味着,如果我运气不好,可能需要很长时间才能得到答案(有时是几分钟!)。我不希望我的应用程序在后台停留那么长时间,所以我只想启动并忘记日志消息。我不需要100%的保证,但是尽可能的接近当然很好 实现这一目标的最佳方法是什么? 我已经阅读了的答案,但它是针对ASP.Net应用程序的。这是否仍然适用于退出并消失的WPF应用程序(可能在服务器给出答复之前),或者在这种情况下有更好的方法吗 谢谢 如果有什么东西很快就消失了,那就是ASP.Net页面/请

我有一个应用程序,它应该在退出到云函数时发送日志。这意味着,如果我运气不好,可能需要很长时间才能得到答案(有时是几分钟!)。我不希望我的应用程序在后台停留那么长时间,所以我只想启动并忘记日志消息。我不需要100%的保证,但是尽可能的接近当然很好

实现这一目标的最佳方法是什么? 我已经阅读了的答案,但它是针对ASP.Net应用程序的。这是否仍然适用于退出并消失的WPF应用程序(可能在服务器给出答复之前),或者在这种情况下有更好的方法吗

谢谢

如果有什么东西很快就消失了,那就是ASP.Net页面/请求。这就是它们的生命周期:|页面应该被创建、处理、发送给用户并尽快从内存中删除。这适用于所有的网络技术。与此相比,WPF应用是一种构造运动多任务处理通常必须在客户端完成——这是代码能够持续足够长时间以获得答案的唯一地方。我遵循Maxim 26。只要你永远不会忘记,那么“开火并忘记”就可以了吞咽异常是异常处理的一大罪过。通常情况下,你必须为它写一篇非常糟糕的文章。但是多任务呢?解雇并忘记任务?这些都因吞并例外而臭名昭著。您必须停止应用程序关闭,直到所有启动的任务/线程完成。显然,你应该有办法中止它们这对于应用程序关闭来说并不是那么关键——应用程序将以任何一种方式结束。但我还是不喜欢。