gpt4 book ai didi

c# - 如何在多线程中优雅地从 TargetInvocationException 中恢复?

转载 作者:行者123 更新时间:2023-11-30 21:25:29 24 4
gpt4 key购买 nike

由于 UI 线程(进度条)上的 Windows 控件,我在另一个线程中执行长时间处理时遇到了 TargetInvocationException。此异常导致我的应用程序崩溃(在调试中转到 main 方法)并且无法被 try catch 捕获。我弄清楚是什么导致了这个异常,并修复了它(试图通过一个超过最大值的值来分配“Value”属性)。但这让我想知道如何捕获这样的异常(在生产代码中),所以我可以选择恢复我的应用程序而不是终止应用程序。

最佳答案

您很可能无法恢复很多。就您的操作而言,大量堆栈帧(以及从这些堆栈帧引用的对象)的状态可能由于错误而无效。

正因为如此,您充其量可以在非常高的水平上恢复并再次尝试该操作。

如果您正在访问的资源能够包含在事务中,那么我建议您这样做,这样您就不必担心持久化数据的不一致。

此外,您可能想在 SO 上查看此线程:

Best Practice for Exception Handling in a Windows Forms Application?

以及 Microsoft 的异常处理应用程序 block :

http://msdn.microsoft.com/en-us/library/cc309505.aspx

关于c# - 如何在多线程中优雅地从 TargetInvocationException 中恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/627753/

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