함수 내부에서 두 개의 태스크가 필요하며 각 예외를 처리하기 위해 Try Catch가 있습니다. 하지만 나는 첫 번째 작업에서 예외가 있고 두 번째 예외에서 Exception으로 끝나는 경우 함수에서 돌아 오는 경우 어떤 일이 발생하는지 알고 싶습니다. 두 번째 작업의 예외가 처리되지 않고 GC로 해당 작업 개체에 대해 Finalize가 호출 될 때 응용 프로그램이 중단됩니다.작업에서 예외가 발생했습니다.
샘플 코드 : 당신이 당신이 언급 한 TPL 처리되지 않은 오류 동작을 호출합니다 작업 2의 잠재적 인 예외를 관찰하기 전에 기능을두면
public void ProcessJob()
{
var Job1 = Task.Factory.StartNew(() => Dojob1());
var Job2 = Task.Factory.StartNew(() => Dojob2());
try
{
Job1.Wait();
}
catch(Exception ex)
{
//Handle Exception
return;
}
//some other actions.
try
{
Job2.Wait();
}
catch(Exception ex)
{
//Handle Exception
return;
}
}
어쨌든 작업이 완료 될 때까지 동 기적으로 대기하는 경우 작업을 처음 사용하는 이유는 무엇입니까? Dojob1()과 Dojob2()를 직접 호출하는 것이 어떨까요? 일반적으로 오류를 처리하기 위해 작업에 연속을 추가하고 해당 연속 내에서 작업의 상태 (throw 된 예외 포함)를 검사 할 수 있습니다. 그건 비동기식 설정을위한 것이지 실제로 사용하지는 않습니다. – David
작업에서 처리되지 않은 예외가 더 이상 응용 프로그램을 끊지 않습니다 (.Net 4.5 이후) – i3arnon
@David. 답장을 보내 주셔서 감사합니다. 위의 코드는 원래 문제의 개요입니다. 위 코드의 결과를 알고 싶습니다. –