0

次の問題があります:アプリの終了時に構成(オブジェクトの非常に大きなリスト)を保存(xmlシリアル化)し、メインフォームを閉じますが、一部のコンプのOS(win 7)が保存が完了する前にアプリを終了することがあります。だから私はこれを行うのに最適な時期はいつかと尋ねています.おそらくメインフォームの最小化で考えましたが、それは条件付きです(ユーザーはアプリを最小化することは決してないでしょう).

4

1 に答える 1

0

WPFのみ

アプリケーションクラスに入れてみましたか?アプリケーションの終了時に起動するオーバーライドがあります。以下の方法では、タスクを完了するのに10秒かかります。また、アプリケーションを閉じる前に、ユーザーはメッセージボックスの[OK]ボタンをクリックします。

ただし、構成を別のスレッドに保存している場合、これは機能しません。アプリケーションを終了するだけです。

App.xaml.cs

    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
        protected override void OnExit(ExitEventArgs e)
        {
            Thread.Sleep(10000);
            MessageBox.Show("done");
            base.OnExit(e);
        }
    }

Winフォーム

Winformsアプリケーションでは、ApplicationExitイベントにフックして、そこに構成を保存できます。

Application.ApplicationExit += new EventHandler(Application_ApplicationExit);
static void Application_ApplicationExit(object sender, EventArgs e)
{

}
于 2012-05-31T09:18:46.777 に答える