添加PageFunction.Return处理程序时WPF System.ExecutionEngineException

时间:2012-10-31 09:34:03

标签: c# wpf

我在wpf应用程序中有简单的窗口

<Window ... >
     <Frame  Name="contentFrame" Margin="0 60 0 0" Source="ContentPage.xaml" NavigationUIVisibility="Hidden"/>
</Window>

和名为SettingsPage的简单页面函数(公共部分类SettingsPage:代码隐藏中的PageFunction)。在某些时候,我在窗口代码隐藏

中执行代码
    SettingsPage settingsPage = new SettingsPage();
    settingsPage.Return += settingsPage_Return;
    contentFrame.NavigationService.Navigate(settingsPage);

其中

public void settingsPage_Return(object sender, ReturnEventArgs<bool> e)
    {
        String test="test";
    }

在页面功能中,我执行代码

OnReturn(false);

并获取System.ExecutionEngineException。 我需要捕获SettingsPage close事件,并在SettingsPage中创建委托时将其设置为手动提升, 但我不明白为什么标准的WPF功能不起作用。 任何人都知道为什么WPF会在这种情况下引发错误吗?

1 个答案:

答案 0 :(得分:0)

这可能是因为您的网页被垃圾收集了。 System.ExecutionEngineException的原因通常是这样。 Related MSDN definition说:

  

在某些情况下,针对.NET Framework的应用程序可能会   在垃圾回收期间抛出ExecutionEngineException异常   当一个应用程序或运行它的系统在一个   重物。作为解决方法,您可以禁用并发垃圾   通过修改应用程序的配置文件进行收集。更多   信息,请参见如何:禁用并发垃圾收集。

Disabling concurrent garbage collection可能是一种了解它是否真的如此的方法。