0

私は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がエラーを発生させる理由を知っている人はいますか?

4

1 に答える 1

0

これは、ページがガベージ コレクションされていることが原因である可能性があります。System.ExecutionEngineException の原因は通常そうです。関連する MSDN 定義は次のように述べています。

場合によっては、.NET Framework を対象とするアプリケーションが、実行中のアプリケーションまたはシステムの負荷が高い場合、ガベージ コレクション中に ExecutionEngineException 例外をスローすることがあります。回避策として、アプリケーションの構成ファイルを変更して、同時実行ガベージ コレクションを無効にすることができます。詳細については、「方法: 同時ガベージ コレクションを無効にする」を参照してください。

並行ガベージ コレクションを無効にすることは、それが本当にそうであるかどうかを確認する方法かもしれません。

于 2012-10-31T09:48:08.060 に答える