1

Windows アプリケーションから次のエラーが発生します。特定のエラーが例外ロガーファイルに記録されていないため、例外が発生する理由を理解できませんでした。

アプリケーション名が失敗しました: Test.exe、バージョン: 1.0.0.15、タイム スタンプ: 0x51481394
失敗したモジュール名: KERNELBASE.dll、バージョン:6.1.7601.18015、タイム スタンプ: 0x50b83b16
例外コード:0xe053534f
障害オフセット:0x0000812f
プロセス ID が失敗しました:0x% 9
アプリケーションの開始時間が失敗しています:0x% 10
アプリケーション パスが失敗しました:% 11
モジュール パスが失敗しました:% 12
レポートID:%13

以下のコードを見つけてください

private void frmSetTime_Load(object sender, EventArgs e)
{
    try
    {
        string[] cmds = System.Environment.GetCommandLineArgs();
        //Here i gets Command Line Arguments
    }
    catch (Exception ex)
    {
        MessageBox.show(ex.message);
    }
    finally
    {
        GC.Collect();
    }
}

public void ExecuteLogic(Object obj)
{
    try
    {
        //My set of Statements
        Therad.sleep(5000);
        ExecuteLogic(obj);
    }
    catch (Exception ex)
    {
        MessageBox.show(ex.message);
    }
    finally
    {
        GC.Collect();
        ApplicationRestart();
    }
}

private void ApplicationRestart()
{
    try
    {
        if (Process.GetCurrentProcess().WorkingSet64 >= 10000000)
        {                         
            Application.Restart();                    
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.message);
    }
}
4

1 に答える 1

2

無限の再帰がExecuteLogicあり、常に自分自身を呼び出します。これにより、最終的にシステムのスタックスペースが不足します。離れたくない場合はExecuteLogic、whileループを使用してください

于 2013-03-21T02:56:05.463 に答える