gpt4 book ai didi

c# - BeginInvoke 方法的 catchall 所以它不会关闭我的应用程序?

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:19 30 4
gpt4 key购买 nike

有没有我可以在 C# 中为 BeginInvoke 方法注册的 catchall 处理程序?

在我的 MainForm 中启动时,我有这段代码

        Application.ThreadException += new ThreadExceptionEventHandler(UIExceptionHandler);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);

我认为这已经足够了,但另一种形式的异常(exception)正在取消我的申请。我该如何处理? (我真的不想进入每个用户控件,我有一个添加代理 BeginInvoke 方法和我自己的 try..catch 也不想将它添加到我有的每个 BeginInvoke 调用中......那会很乏味与添加一个 catchall 处理程序相比)。

谢谢,院长

最佳答案

试试这个:

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

Here is the MSDN on SetUnhandledExceptionMode

Also, here is a SO question that might make more sense if you are seeing this in debug (JoshL's answer) .基本上,它默认为自动,如果 jitDebugging 配置设置为 true(如果您正在调试,则为 true),那么应用程序将抛出而不是捕获到您的处理程序中。

关于c# - BeginInvoke 方法的 catchall 所以它不会关闭我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11265416/

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