我在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会在这种情况下引发错误吗?
答案 0 :(得分:0)
这可能是因为您的网页被垃圾收集了。 System.ExecutionEngineException的原因通常是这样。 Related MSDN definition说:
在某些情况下,针对.NET Framework的应用程序可能会 在垃圾回收期间抛出ExecutionEngineException异常 当一个应用程序或运行它的系统在一个 重物。作为解决方法,您可以禁用并发垃圾 通过修改应用程序的配置文件进行收集。更多 信息,请参见如何:禁用并发垃圾收集。
Disabling concurrent garbage collection可能是一种了解它是否真的如此的方法。