2012-06-22 1 views
0

У меня есть большой проект C#, который управляет радиолокационным помехом. Когда проект загружен, мы создаем 3 потока, и каждый открывает то, что мы называем «основной формой» (закрытие одной из основных форм завершает работу программы.Как убедиться, что все chages сохранены до закрытия программы?

Проблема, с которой я сталкиваюсь сейчас, заключается в том, что я могу закройте одну из основных форм, прежде чем убедиться, что все остальные формы сохранены и правильно закрыты. Каков наилучший способ решить эту задачу? Моя текущая рекомендация - сохранить глобальный стек, который отслеживает все открытые формы и перед закрытием mainform, он попытается сохранить и закрыть все формы в стеке.

+0

Не разрешайте пользователю закрывать основные формы во время этого процесса инициализации. Вы обрабатываете событие, которое обрабатывает, как закрывается ваша программа. –

+0

Необходимы ли 3 потока? – jorgebg

+0

Да, в противном случае программа будет слишком медленной для загрузки. –

ответ

0

Если ваша функция состоит в том, чтобы формы больше не отображались, но все же имели доступ к данным формы внутри, вы можете использовать hide() вместо немедленно закрывая их.

Однако у вас должен быть список, который, как вы сказали, содержит ссылки на все основные формы и итерации через них, чтобы сохранить их информацию, прежде чем действительно избавиться от них.

EDIT: Вы также можете использовать метод OnFormClosing. Это более основанный на событиях подход. http://msdn.microsoft.com/en-us/library/system.windows.forms.form.onformclosing.aspx

+0

Конечная цель состоит в том, чтобы закрыть программу, но перед тем, как сделать это, мы хотим, чтобы все другие формы (а не только основные формы) были сохранены, поэтому мы не скрываем этого. Итак, да, список кажется лучшим вариантом здесь, если нет способа выбросить события или что-то в этом роде? –

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

  • Нет связанных вопросов^_^