gpt4 book ai didi

.net - 为什么 WPF 会吞下在 Window.Activated 的事件处理程序中抛出的异常?

转载 作者:行者123 更新时间:2023-12-04 23:08:14 25 4
gpt4 key购买 nike

简单的 WPF 应用程序,带有一个普通的空 Window,我在其中将事件处理程序连接到 Window 的 Activated 事件:

public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
Activated += OnWindowActivated;
}

private void OnWindowActivated(object sender, EventArgs e)
{
throw new NotImplementedException();
}
}

当异常在处理程序中抛出并且在其他任何地方都未处理时,我希望应用程序终止,但它没有。 WPF 似乎在某处吞下了异常,并且窗口弹出并继续正常运行。

为什么?

最佳答案

这可能是与在 64 位操作系统上运行 32 位应用程序相关的问题。如果是这样,那么 Paul Betts 的博文应该让你知道发生了什么。

简而言之,对于 32 位进程,由于跨用户模式/内核模式边界传播异常的问题,.NET 框架似乎吞噬了您的异常。对于 64 位进程,这不会发生,因此测试这是否确实是您的问题的最简单方法是为“任何 CPU”平台重建您的测试应用程序并再次运行它。当我这样做时,它会像人们预期的那样崩溃。

关于.net - 为什么 WPF 会吞下在 Window.Activated 的事件处理程序中抛出的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12358353/

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