0
작업자 스레드가WPF는 작업자 스레드에서 예외를 throw하지만 계속됩니다.
처럼 보이는 작업을 수행하는 시나리오가 있습니다.try
{
for()
{
functionA();
functionB();
}
}
catch(Exception ex)
{
throw new Exception("Message");
}
기본적으로 예외를 다시 throw하므로 작업자가 완료되면 UI 스레드가 예외를 수신합니다. 이제 functionA
에서 예외가 발생하면 예외를 던지기를 원하지만 루프를 계속하고 멈추지는 않습니다. 이것을 어떻게 할 수 있습니까?
편집 : 명확하지 않은 경우 예외가 발생했지만 작업자를 중지시키지 않은 UI를 UI에 알릴 수 있습니다.
그러나 'functionB'는 중요합니다. 'functionB'가 예외를 throw하면 종료해야합니다. 또한 UI에 functionA에서 오류가 발생했음을 즉시 통보 받아야합니다. 모두 종료하지 않고 – Aks
이 경우 목록에 예외를 추가하는 대신 dispatcher를 사용하여 UI 스레드에서 예외를 다시 throw하면됩니다. Application .Current.Dispatcher.BeginInvoke (새 작업 (() => MyAsyncException (e)) throw). –
작업자 스레드가 다른 프로젝트에서 작동 중입니다. Application.Current.Dispatcher는 컨텍스트 내에서 의미가 없습니다. ( – Aks