0

我有以下问题:我在应用程序退出时保存(xml 序列化)我的配置(非常大的对象列表),主窗体关闭,但有时某些组合上的操作系统(win 7)会在保存完成之前终止我的应用程序。所以我问什么时候是最好的时机,我想可能是在主窗体上最小化,但这是有条件的(用户可能永远不会最小化应用程序)。

4

1 回答 1

0

仅 WPF

你试过把它放在你的应用程序类中吗?在应用程序退出时会触发一个覆盖。下面的方法需要 10 秒来完成它的任务,并且还使用户在应用程序关闭之前单击消息框上的 OK 按钮。

但是,如果您将配置保存在另一个线程中,这将不起作用,它只会退出应用程序。

应用程序.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);
        }
    }

赢取表格

在 Winforms 应用程序中,您可以连接到 ApplicationExit 事件并将您的配置保存在那里。

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

}
于 2012-05-31T09:18:46.777 回答