Visual C#에서는 예외가 발생하면서 오류 메시지를 표시하는 메시지 상자를 호출합니다. 메시지 상자가 닫히지 않고 프로그램을 계속 실행하려면 어떻게해야합니까?메시지 상자를 표시하고 응용 프로그램을 실행하는 방법
답변
MessageBox.Show
대신에 Form
이라는 오류 메시지를 Form.Show()
메서드를 사용하여 넌 모달 방식으로 표시 할 수 있습니다. 이렇게하면 UI 스레드가 계속해서 롤링 될 수 있습니다.
물론 이것은 크기, 텍스트 정렬 및 기타와 같은 몇 가지 사항을 직접 설정해야한다는 것을 의미합니다. 하지만 한 가지 작업에이 작업을 사용하려는 경우 너무 많은 문제가 발생하지 않아야합니다.
나는 당신의 접근이 아주 이상하다는 것을 알아야한다. 일반적으로 오류가 발생하여 사용자에게 알리 길 원하면 메시지 상자가 닫힐 때까지 앱을 대기 상태로 유지해야합니다. 그렇게하지 않으면 의심 할 여지없는 문제가 발생할 수 있습니다. 예 : 오류가 이미 표시되는 동안 다른 오류가 발생하면 어떻게됩니까?
UI 스레드가 보류 중일 때 완료하려면 특정 작업이 필요하면 가능한 한 새 스레드에서 수행하는 것이 좋습니다. 이것은 최종 사용자의 경험을 기대 수준으로 유지하면서 원하는 것을 제공해야합니다. 당신이 대화의 결과에 릴레이해야하는 경우 확인 (, 또한
Task.Run(() => MessageBox.Show("Test"));
: 당신이 절대적으로 비 블로킹 방식으로 실행해야하는 경우
추천 해 주셔서 감사합니다. –
당신은 별도의 스레드에서 메시지 상자를 초기화 할 수 있습니다/Cancel) 아마 전체 메서드는 새 스레드에서 실행해야합니다.
Task.Run(
() =>
{
if (MessageBox.Show("Test", "test", MessageBoxButtons.OkCancel) == DialogResult.OK)
{
MessageBox.Show("Ok");
}
else
{
MessageBox.Show("Cancel");
}
}
);
다른 스레드에서 UI 작업을 실행하는 데주의하십시오. – Crono
분명히 권고하지 않았습니다. 메시지 상자를 절대적으로 비 차단 방식으로 표시해야하는 경우이를 최후의 수단으로 제시했습니다. – PiotrWolkowski
- 1. 메시지 상자를 표시하고 저장을 취소하면 셀을 확인하십시오.
- 2. Minifilter : 커널 모드에서 응용 프로그램을 실행하는 방법
- 3. 임베디드 응용 프로그램을 실행하는 방법
- 4. 코스모스 응용 프로그램을 실행하는 방법
- 5. 백그라운드에서 응용 프로그램을 실행하는 방법
- 6. opensaf에서 응용 프로그램을 실행하는 방법
- 7. 맞춤 메시지 상자를 추가하는 방법
- 8. MVC 응용 프로그램에서 메시지 상자를 표시하는 방법
- 9. scriptmanager 메시지 상자를 실행하는 동안 디자인이 사라짐
- 10. 코코아에서 간단한 응용 프로그램 - 모달 대화 상자를 표시하고 관리하는 방법
- 11. 메시지 상자를 표시하는 웹 서비스
- 12. 특정 요일에 .Net 응용 프로그램을 실행하는 방법
- 13. 웹 페이지에서 사진 응용 프로그램을 실행하는 방법
- 14. WPF 응용 프로그램을 관리자 모드로 실행하는 방법
- 15. Eclipse에서 Sencha Touch 응용 프로그램을 실행하는 방법
- 16. 이전 버전에서 응용 프로그램을 실행하는 방법
- 17. 모든 응용 프로그램을 bada로 실행하는 방법 Device
- 18. 없이 리눅스 콘솔 응용 프로그램을 실행하는 방법./
- 19. 클라이언트 서버 응용 프로그램을 생성하고 실행하는 방법
- 20. LAN의 여러 컴퓨터에서 응용 프로그램을 실행하는 방법
- 21. 터미널 창없이 Mac 응용 프로그램을 실행하는 방법
- 22. 불빛에 Google지도 응용 프로그램을 실행하는 방법
- 23. Windows 서비스에서 응용 프로그램을 실행하는 방법
- 24. tomcat에서 javafx 응용 프로그램을 배포하고 실행하는 방법
- 25. Flask 응용 프로그램을 로컬로 실행하는 정식 방법
- 26. 파이썬 스크립트를 실행하는 응용 프로그램을 확인하는 방법
- 27. Android : 백그라운드에서 응용 프로그램을 영원히 실행하는 방법?
- 28. 스파크 응용 프로그램을 데몬으로 실행하는 방법
- 29. 로컬 IIS에서 asp.net 응용 프로그램을 실행하는 방법
- 30. 가장 기본적인 Vaadin 응용 프로그램을 실행하는 방법
메시지 상자를 표시해야합니까? 왜 콘솔이나 텍스트 파일에 오류를 기록하고 거기에서 읽지 않습니까? 그렇지 않으면 http://stackoverflow.com/questions/10634663/messagebox-that-allows-a-process-to-continue-automatically – KJ3
이 도움이되기를 바랍니다. http://stackoverflow.com/questions/3059487/create-a-modeless-messagebox – Jumpei
예외를 기록한 다음 _fix_ 문제를 기록해야합니다. 예외는 일반적으로 코드가 손상되었다는 것을 의미합니다. 그러니 고쳐주세요. –