다음을 통해 공유


스레드 상태

업데이트: 2007년 11월

ThreadState 속성은 스레드 상태에 대한 정보를 제공합니다. 스레드는 특정 시간에 여러 상태일 수 있으므로 ThreadState에 저장된 값은 ThreadState 열거형의 값이 여러 개 결합된 것일 수 있습니다. 예를 들어, 스레드가 Wait 호출에서 중단되고 다른 스레드에서 해당 스레드의 Abort 메서드를 호출하면 이 스레드는 WaitSleepJoinAbortRequested 상태를 모두 갖게 됩니다.

스레드 상태 변경

스레드가 시작된 다음에는 해당 메서드를 호출하여 스레드의 상태를 변경할 수 있습니다. 예를 들어, Thread.Sleep을 호출하여 고정된 시간(밀리초) 동안 스레드를 일시 중지할 수 있습니다. Sleep 메서드는 제한 시간을 매개 변수로 사용합니다. 제한 시간은 스레드가 차단된 상태로 유지되는 시간(밀리초)입니다.

Infinite 인수로 Sleep을 호출하면 다른 스레드에서 Interrupt를 호출할 때까지 이 스레드는 대기 상태가 됩니다. Interrupt 메서드는 대상 스레드를 대기 상태에서 벗어나게 하므로 예외가 발생할 수 있습니다.

Suspend를 호출하여 스레드를 일시 중지할 수도 있습니다. 스레드가 자체적으로 Suspend를 호출하면 다른 스레드에서 Resume을 호출하여 다시 시작할 때까지 호출이 차단됩니다. 한 스레드가 다른 스레드에서 Suspend를 호출하면 이 호출은 다른 스레드를 일시 중지시키는 비차단 호출입니다. Resume을 호출하면 다른 스레드를 일시 중지 상태에서 벗어나게 하고 다시 실행되도록 합니다. Sleep과는 달리 Suspend는 스레드를 즉시 중지시키지 않습니다. 즉, 일시 중지되는 스레드는 공용 언어 런타임에서 안전한 지점에 도달했다는 것을 확인할 때까지 일시 중지되지 않습니다.

Abort 메서드는 스레드가 소멸되도록 하는 ThreadAbortException 예외를 발생시켜 스레드의 실행을 중지시킵니다.

이러한 메서드에 대한 자세한 내용은 Thread를 참조하십시오.

참고 항목

개념

다중 스레드 응용 프로그램

스레드 동기화

다중 스레드 프로시저의 매개 변수 및 반환 값

폼 및 컨트롤에 다중 스레딩 사용

대리자 및 AddressOf 연산자

참조

System.Threading

SyncLock 문

기타 리소스

구성 요소에서 다중 스레딩