나는 길고 상세한 질문을 썼지 만 간단한 질문에 찬성하여이 질문에 답을 찾지 못했습니다.WF를 사용하는 멀티 스레드 응용 프로그램의 오류 처리 패턴은 무엇입니까?
간단한 응용 프로그램 설명 :
나는 여러 스레드를 생성합니다 WPF 응용 프로그램을 가지고 있고, 각 스레드는 자신의 WF를 실행합니다. GUI에서 사용자 상호 작용을 허용하는 스레드 및 WF의 오류를 처리하는 가장 좋은 방법은 무엇입니까? 쓰레드가 종료되기를 원하지 않기 때문에 쓰레드에서 저레벨 예외를 처리 할 계획이다. 질문
요약 :
어떻게 WF하고 시작하는 스레드 사이의 통신을 구현? WorkflowTerminated가 있지만 워크 플로를 종료하지 않으려면 문제를 해결하고 계속 진행해야합니다. 유일한 옵션은 FaultHandler를 사용하는 것으로 가정하고 있지만 액티비티 블록을 사용하지 않고도 수행 할 수있는 다른 방법이 있는지 궁금해하고 있습니다. 나는 아직 발견하지 못한 프레임 워크가 있기를 바라고 있습니다.
WF의 오류는 스레드에 의해 발견되어 GUI에 오류를 표시해야합니다. 그런 다음 사용자는 복구에 대한 논리적 선택을 한 다음 스레드로 다시 전송 한 다음 WF로 보냅니다. 다시 말하지만, 제가 거기를 살펴 봐야 할 부분이 있습니까?
내가 설명하는 것을 달성하는 유행어/키워드조차도 실제로 도움이 될 수 있으며, 각 연구에 대한 다리 작업을 수행 할 수 있습니다. 그러나 추가적인 통찰력은 언제나 환영합니다. :)
사용자 응답을 기다리는 동안 스레드가 확실히 차단되어야합니다 (자체적으로). GUI가 적절한 신호를 설정할 때까지 스레드 차단을 만들기 위해 WaitHandle 및 AutoResetEvent를 사용할 것을 고려하고있었습니다. 스레드에서 "나는 오류를 처리했습니다"이벤트를 생성하고이를 콜백을 통해 GUI에 전달하는 적절한 방법이 있습니까? 콜백이 아닌 다른 것을 처리 할 수있는 ".NETish"방법이 있습니까? 나는 확실히 이런 방식으로 편안하게하고 있지만, 다른 접근 방식에도 열려 있습니다. – Dave
".NETish way"를 정의하는 방법을 잘 모르겠습니다. (좋은 일반적인 질문입니다). –
그러나 사용자가 응답 할 스레드를 선택할 수 있도록 각 스레드의 상태를 UI (목록보기 포함)에 동시에 표시하는 방식을 사용합니다. 콜백은 비동기 적으로 신호를 보낼 때 가장 선호하는 방식이며 여러 .Net 라이브러리에서 사용됩니다. 더 호기심 많은 대답을 기다리는 동안 한 번 시도해보십시오. –