2017-10-22 12 views
0

데이터 격자를 보여주는 기본 폼과 행 중 하나를 두 번 클릭 한 후 나타나는 "세부 양식"(ShowDialog 메서드 사용)이있는 Windows Forms 응용 프로그램이 있습니다. 이 "세부 형태"정확하게 나에게 어떤 문제를주고있다 : 웹 서비스 시스템 세트 긴 동기 호출 동안Application.Exit() 호출 후 대화 상자 양식이 응용 프로그램을 중단시키는 이유는 무엇입니까?

  1. 는 "응답 없음"상태로 형성한다. 콜백 양식이 메인 윈도우 뒤에 숨어 있습니다. 그 외에는 모든 것이 잘 작동합니다.

  2. 경우에 따라 Application.Exit을 사용하여 즉시 응용 프로그램을 닫아야합니다. "세부 양식"이 열린 응용 프로그램 인 경우 전화가 끊깁니다. 심지어 Environment.Exit 또는 Thread.CurrentThread.Abort이 작동하지 않습니다.

나는 이러한 증상을 근거로 어떤 조언을 해 줄 수 있는지 궁금합니다. 무엇이 잘못 될 수 있는지 궁금합니다. 몇 가지 코드 예제를 제공 하겠지만,이 경우 중요한 것이 무엇인지 모릅니다.

답변

-1

응용 프로그램을 즉시 닫는 것이 프로젝트 요구 사항의 일부인 경우 긴 동기 호출이 중단/종료 코드를 차단하도록 할 수 없습니다. 긴 동기 호출을 백그라운드 스레드로 이동하십시오.

+0

나는 그것을 충분히 명확하게 설명하지 않았 음을 알 수 있습니다. 포인트 1과 2는 적어도 직접적으로는 연결되어 있지 않습니다. – kar8o

+0

은 중단/종료 코드 (지점 A)에 중단 점을 설정하고 웹 서비스 호출 (지점 B) 바로 다음에 디버그를 설정하고 디버그합니다. 점 B를 통과 할 때까지 점 A를 칠 수는 없지만 점 B보다 먼저 점 A를 치는 것이 필요하므로 동기 호출을 비동기 적으로 수정해야합니다. –

+0

응용 프로그램을 끊기 위해 웹 서비스를 호출 할 필요가 없습니다. "세부 양식"이 열려 있으면 충분합니다. 나는 서비스 콜백 이후의 이러한 독특한 행동이 구현에서 동일한 실수의 또 다른 증상 일 수 있다고 생각했습니다. – kar8o