Обнаружить, что последний запуск приложения разбился в c #

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

Как это сделать с помощью C #?

1
nl ja de
в Main() заключить все внутри try {} catch {} и поместить любой код, который вам нужен, в catch {} , например код напишите файл отчета о сбое или что-то в этом роде.
добавлено автор Nolonar, источник
вы делаете то же самое с любым другим языком ... сохраняете какое-то внешнее состояние, которое устанавливается/отключается при запуске/нормальном окончании. SO не там, чтобы сделать вашу работу ... пожалуйста, покажите исходный код ... что вы пробовали? что именно не работает?
добавлено автор Yahia, источник
@Yahia: Возможно, что OP просто не имеет никакого представления о том, как это сделать. Если бы они знали, что они должны использовать флаг и все еще задавали один и тот же вопрос, я был бы с тобой.
добавлено автор Jon, источник
@Nolanar Это не будет работать эффективно, есть определенные типы сбоев (из памяти, stackoverflow и т. Д.), Которые не будут вызывать блокировки catch ...
добавлено автор Immortal Blue, источник

2 ответы

Приложение должно установить флаг «изящно выключенный» на каком-то постоянном хранилище, как последнее, что он делает при выключении.

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

6
добавлено

Вы можете использовать в Program.cs

#if !DEBUG
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
#endif

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmMain());

Таким образом, вы будете обрабатывать все ошибки, вы можете зарегистрировать их или даже перезапустить приложение в случае критического сбоя и восстановления сеанса для пользователя. Обратите внимание на условие #if! DEBUG , без него будет сложно отлаживать, потому что здесь будет выпадать все необработанное исключение.

0
добавлено
директива не требуется. Если вы не можете отлаживать это, значит, вы отключили исключения. Просто выберите меню «Отладка» -> «Исключения» и отметьте в столбце «Отброшено» на «Исключение времени обычного языка», чтобы разбить все стандартные исключения.
добавлено автор Rafal, источник
TY Rafal, я проверю!
добавлено автор HoGo, источник
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)