.NET Winforms 앱이 대화 상자없이 슈퍼를 닫게 할 수있는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/201614

  •  03-07-2019
  •  | 
  •  

문제

당사의 WinForms 응용 프로그램은 때때로 자체적으로 가까이있는 것으로보고되었습니다. 그것은 우리 자신의 충돌 오류 제출 대화 상자 나 Windows의 오류 제출 대화 상자를 보여주지 않으며, 종종 사람이 AFK 일 때 종종 신청서에 아무것도하지 않을 때는 닫히고 사라집니다. 한 달에 2-3 번처럼 반주의 발생 인 것 같습니다. 재현 케이스를 얻거나 어디에서 추적 해야하는지 어디서 시작 해야할지 모르겠습니다.

C# .NET 2.0보고 된 사례는 XP에 있습니다.

누구든지 아이디어가 있습니까?

도움이 되었습니까?

해결책

무한 재귀로 인한 스택 오버 플로우는 경고없이 앱을 종료하는 큰 원인입니다. 조용한 종료를 일으키기 위해 고의적 인 일을하지 않았다면, 앱이 종료되기 전에 일반적으로 어떤 종류의 UI가 표시되지 않는 예외가 나타납니다. 스택 오버플로는이 규칙에 가장 일반적인 예외 (죄송합니다)입니다.

물론, 관리되지 않거나 안전하지 않은 코드에서는 무음 출구를 일으키기 위해 올바른 방법으로 런타임을 화나게 할 수 있습니다.

계측 및 Windows 이벤트 로그를 보는 것에 대한 제안도 좋습니다.

다른 팁

예외로 인해 앱이 "사라집니다". 이벤트 로그를 확인하여 무엇이 있는지 확인하십시오.

작업 관리자가 창이 사라질 때 프로세스가 여전히 있는지 확인하십시오. Explorer Crash를 가지고 있었고 (작업 관리자에서) Alt Tabbed 또는 전환 될 때까지 창을 다시 그리지 못했습니다.

사용자가 앱을 닫는 것을 편리하게 잊어 버리기 위해 사용자를 지나치지 마십시오. 앱에 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그 로그를 기록하여 사용자가 시작한 클로저를 기록 할 수 있습니다. 다음에 "사라질"하면 로그 항목이 있는지 확인할 수 있습니다.

Formclosing 이벤트에 몇 가지 논리를 추가하여 사용자에게 실제로 원하는 일을 물어 보면 마감 이벤트를 취소 할 수 있으며 모든 것이 잘되면 응용 프로그램이 계속 실행됩니다. 이 문제를 계속 주목하고 논리를 수행하지 않으면 디버거에서 손을 더럽 히아야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top