Что могло вызвать внезапное закрытие приложения .NET WinForms без диалогового окна?

Сообщается, что наше приложение WinForms иногда просто закрывается само по себе. Он не показывает ни наше собственное диалоговое окно отправки ошибки при сбое, ни диалоговое окно отправки ошибки Windows, оно просто закрывается и исчезает, часто, когда человек был сброшен и ничего не делал с приложением. Кажется, это редкое явление, может быть, примерно 2-3 раза в месяц, и такое случается более чем с одним человеком. Я понятия не имею, с чего начать, чтобы получить репутацию или где начать отслеживать это.

C# .NET 2.0 Сообщенные случаи относятся к Win XP

У кого-нибудь есть идеи?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
1 368
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

Проверьте диспетчер задач, чтобы увидеть, продолжается ли процесс, когда окно исчезнет. У меня был сбой проводника, и я не мог перерисовать окно, пока оно не было Alt-Tabbed или Switched-To (из диспетчера задач).

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

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

Davy8 14.10.2008 20:10

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

Davy8 14.10.2008 20:12

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

Ответ принят как подходящий

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

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

Предложения по оснащению и просмотру журнала событий Windows тоже хороши.

Похоже, что скорее всего виновата тихая авария. Спасибо

Davy8 14.10.2008 20:18

Другие вопросы по теме