2012-05-31 2 views
0

У меня есть следующая проблема: я сохраняю (xml serialize) мою конфигурацию (очень большой список объектов) при выходе приложения, закрытие основной формы, но иногда OS (win 7) на некоторых comps завершает мое приложение до завершения сохранения. Поэтому я спрашиваю, когда самое подходящее время для этого, я подумал, что, возможно, на основной форме свести к минимуму, но это условно (пользователь, возможно, никогда не скроет приложение).Когда подходящее время для сохранения конфигурации?

+0

Это настольное приложение? Как насчет встроенной базы данных вместо того, чтобы помещать все в конфигурацию? –

ответ

0

WPF Только

вы пробовали положить его в своем классе приложения? Существует переопределение, которое срабатывает при выходе приложения. Для выполнения этой задачи метод занимает 10 секунд, а также позволяет пользователю нажать кнопку «ОК» в окне сообщений до закрытия приложения.

это не сработает, если вы сохраните свой конфиг в другом потоке, хотя он просто выйдет из приложения.

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 Forms

в приложениях WinForms вы можете подключить по событию ApplicationExit и сохранить свой конфиг там.

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

} 
+0

Мне очень жаль, я нажал на тег XML вместо XAML, этот ответ специфичен только для приложения WPF (хотя комментарий о потоковой передаче по-прежнему действителен в winforms) – Andy

+0

Я также добавил решение winforms. – Andy

Смежные вопросы