Делаем приложение winforms мощным - PullRequest
1 голос
/ 27 ноября 2010

Как я могу сделать свои приложения устойчивыми к отключениям электроэнергии? Например, как я могу заставить приложение обнаруживать, когда удерживается кнопка питания на машине?

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

Что бы вы сделали в этом случае и как?

Спасибо

Ответы [ 4 ]

2 голосов
/ 27 ноября 2010

Вы не можете точно сказать, когда власть умрет (что, если пользователь отключил машину, ничего не поделаешь). То, что вы можете сделать, это быть готовым к выходу из строя на каждом шагу. Например, вы можете записать текущее состояние и данные приложения в файл, предназначенный для этой цели. Другой вариант - указать контрольные точки в пути выполнения, где будет сохранен частичный результат.

Для каждого решения не забудьте также записать в свое постоянное хранилище данных, если приложение завершилось нормально или нет

Все зависит от типа данных в используемых вами состояниях приложения. Хорошая новость в том, что это всегда возможно, если это достаточно важно

0 голосов
/ 27 ноября 2010

Есть так много способов, которыми ваш процесс может внезапно умереть. От отключения питания, кнопки сброса до диспетчера задач или сбоя системы. Вы не можете предсказать это.

Регулярно сохраняйте во временный файл (предпочтительно атомарным или транзакционным способом), как это делает Word, чтобы в любое время, когда программа завершала работу, вы могли вернуться в правильное состояние. Атомность важна, если ваша программа умирает во время сохранения, чтобы вы не получили поврежденный файл.

0 голосов
/ 27 ноября 2010

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

Во время запуска проверьте, есть ли во временном файле какие-либо данные. Если да, то произошло необычное завершение работы, и пользователь может выполнить «восстановление» из временного файла.

0 голосов
/ 27 ноября 2010

Боюсь, с этим ничего не поделаешь. В таком случае не проводится никаких специальных мероприятий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...