별도의 스레드에서 발생한 예외를 처리하는 방법
멀티 스레드 애플리케이션에서는 스레드가 아닌 다른 스레드에서 발생하는 예외를 처리하는 것이 중요합니다. 주요 코드를 실행하는 코드. 이 챌린지는 적절한 오류 처리 및 애플리케이션 안정성을 보장하기 위해 신중한 처리가 필요합니다.
작업 사용
.NET 4 이후로 Task
task.ContinueWith(ExceptionHandler, TaskContinuationOptions.OnlyOnFaulted); private void ExceptionHandler(Task<int> task) { var exception = task.Exception; Console.WriteLine(exception); }
try { task.Wait(); } catch (AggregateException ex) { Console.WriteLine(ex); }
.NET 3.5에서 스레드 사용
.NET 3.5에서 , 여기서 Task
Exception exception = null; Thread thread = new Thread(() => SafeExecute(() => Test(0, 0), Handler)); thread.Start(); private void Handler(Exception exception) { Console.WriteLine(exception); }
Exception exception = null; Thread thread = new Thread(() => SafeExecute(() => Test(0, 0), out exception)); thread.Start(); ... Console.WriteLine(exception);
이러한 기술을 구현하면 여러 스레드에서 발생한 예외를 효과적으로 처리할 수 있으므로 애플리케이션이 존재하는 경우에도 계속 안정적으로 작동할 수 있습니다. 예상치 못한 오류가 발생했습니다.
위 내용은 .NET에서 별도 스레드의 예외를 효과적으로 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!