관리되는 스레드는 백그라운드 스레드 또는 포그라운드 스레드입니다. 백그라운드 스레드는 한 가지 예외를 제외하고 포그라운드 스레드와 동일합니다. 백그라운드 스레드는 관리되는 실행 환경을 계속 실행하지 않습니다. 모든 포그라운드 스레드가 관리되는 프로세스(.exe 파일이 관리되는 어셈블리)에서 중지되면 시스템은 모든 백그라운드 스레드를 중지하고 종료합니다.
비고
프로세스가 종료되어 런타임이 백그라운드 스레드를 중지할 때, 스레드에서 예외가 발생하지 않습니다. 그러나 메서드가 애플리케이션 도메인 AppDomain.Unload 을 언로드하기 때문에 ThreadAbortException 스레드가 중지되면 포그라운드 스레드와 백그라운드 스레드 모두에서 throw됩니다.
Thread.IsBackground 이 속성을 사용하여 스레드가 백그라운드 또는 포그라운드 스레드인지 여부를 확인하거나 상태를 변경할 수 있습니다. 언제든지 속성을 IsBackgroundtrue.로 설정하여 스레드를 백그라운드 스레드로 변경할 수 있습니다.
중요합니다
스레드의 포그라운드 또는 백그라운드 상태는 스레드에서 처리되지 않은 예외의 결과에 영향을 주지 않습니다. 포그라운드 또는 백그라운드 스레드에서 처리되지 않은 예외로 인해 애플리케이션이 종료됩니다. 관리되는 스레드의 예외를 참조하세요.
관리되는 스레드 풀(즉, 속성이 있는 IsThreadPoolThread 스레드)에 속하는 스레드는 백그라운드 스레드입니다 true. 관리되지 않는 코드에서 관리되는 실행 환경에 들어가는 모든 스레드는 백그라운드 스레드로 표시됩니다. 새 Thread 개체를 만들고 시작하여 생성된 모든 스레드는 기본적으로 포그라운드 스레드입니다.
스레드를 사용하여 소켓 연결과 같은 활동을 모니터링하는 경우 스레드가 프로세스가 종료되지 않도록 해당 IsBackground 속성을 true 설정합니다.
참고하십시오
.NET