Thread 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
스레드를 만들고 제어하며, 해당 속성을 설정하고, 상태를 가져옵니다.
public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject
public ref class Thread sealed
public ref class Thread sealed : System::Runtime::InteropServices::_Thread
public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject, System::Runtime::InteropServices::_Thread
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Thread
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.InteropServices._Thread
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.Runtime.InteropServices._Thread
type Thread = class
inherit CriticalFinalizerObject
[<System.Runtime.InteropServices.ComVisible(true)>]
type Thread = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
interface _Thread
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
inherit CriticalFinalizerObject
interface _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Public NotInheritable Class Thread
Public NotInheritable Class Thread
Implements _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Implements _Thread
- 상속
- 상속
-
Thread
- 특성
- 구현
설명
이 API에 대한 자세한 내용은 스레드에 대한 추가 API 설명을 참조하세요.
생성자
Thread(ParameterizedThreadStart) |
스레드가 시작될 때 개체가 스레드로 전달될 수 있도록 하는 대리자를 지정하여 Thread 클래스의 새 인스턴스를 초기화합니다. |
Thread(ParameterizedThreadStart, Int32) |
스레드가 시작될 때 스레드로 개체가 전달될 수 있도록 하는 대리자를 지정하고 스레드의 최대 스택 크기를 지정하여 Thread 클래스의 새 인스턴스를 초기화합니다. |
Thread(ThreadStart) |
Thread 클래스의 새 인스턴스를 초기화합니다. |
Thread(ThreadStart, Int32) |
스레드의 최대 스택 크기를 지정하여 Thread 클래스의 새 인스턴스를 초기화합니다. |
속성
ApartmentState |
사용되지 않음.
사용되지 않음.
이 스레드의 아파트 상태를 가져오거나 설정합니다. |
CurrentContext |
스레드가 실행 중인 현재 컨텍스트를 가져옵니다. |
CurrentCulture |
현재 스레드에 대한 문화권을 가져오거나 설정합니다. |
CurrentPrincipal |
스레드의 현재 보안 주체(역할 기반 보안용)를 가져오거나 설정합니다. |
CurrentThread |
현재 실행 중인 스레드를 가져옵니다. |
CurrentUICulture |
리소스 관리자가 런타임에 문화권 관련 리소스를 찾기 위해 사용하는 현재 문화권을 가져오거나 설정합니다. |
ExecutionContext |
현재 스레드의 다양한 컨텍스트 정보를 포함하는 ExecutionContext 개체를 가져옵니다. |
IsAlive |
현재 스레드의 실행 상태를 나타내는 값을 가져옵니다. |
IsBackground |
스레드가 배경 스레드인지를 나타내는 값을 가져오거나 설정합니다. |
IsThreadPoolThread |
스레드가 관리되는 스레드 풀에 속하는지를 나타내는 값을 가져옵니다. |
ManagedThreadId |
현재 관리되는 스레드의 고유 식별자를 가져옵니다. |
Name |
스레드의 이름을 가져오거나 설정합니다. |
Priority |
스레드의 예약 우선 순위를 나타내는 값을 가져오거나 설정합니다. |
ThreadState |
현재 스레드의 상태를 포함하는 값을 가져옵니다. |
메서드
Abort() |
사용되지 않음.
이 메서드가 호출되는 스레드에서 ThreadAbortException을 발생시켜 스레드 종료 프로세스를 시작합니다. 이 메서드를 호출하면 대개 스레드가 종료됩니다. |
Abort(Object) |
사용되지 않음.
이 메서드가 호출되는 스레드에서 ThreadAbortException을 발생시켜 스레드 종료 프로세스를 시작하고, 스레드 종료에 대한 예외 정보를 제공합니다. 이 메서드를 호출하면 대개 스레드가 종료됩니다. |
AllocateDataSlot() |
모든 스레드에 명명되지 않은 데이터 슬롯을 할당합니다. 성능을 향상시키려면 ThreadStaticAttribute 특성으로 표시된 필드를 대신 사용합니다. |
AllocateNamedDataSlot(String) |
모든 스레드에 명명된 데이터 슬롯을 할당합니다. 성능을 향상시키려면 ThreadStaticAttribute 특성으로 표시된 필드를 대신 사용합니다. |
BeginCriticalRegion() |
스레드 중단 또는 처리되지 않은 예외로 인해 애플리케이션 도메인의 다른 작업이 손상될 수 있는 코드 영역이 실행될 수 있다는 사실을 호스트에 알립니다. |
BeginThreadAffinity() |
관리되는 코드가 현재 실제 운영 체제 스레드의 ID에 종속되는 명령을 실행하려고 한다는 사실을 호스트에 알립니다. |
DisableComObjectEagerCleanup() |
현재 스레드에 대해 RCW(런타임 호출 가능 래퍼)의 자동 정리를 해제합니다. |
EndCriticalRegion() |
스레드 중단 또는 처리되지 않은 예외가 현재 작업에만 영향을 주는 코드 영역이 실행될 것임을 호스트에 알립니다. |
EndThreadAffinity() |
관리되는 코드가 현재 실제 운영 체제 스레드의 ID에 종속되는 명령의 실행을 완료했음을 호스트에 알립니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
Finalize() |
가비지 컬렉션기에서 Thread 개체를 회수할 때 리소스가 해제되고 다른 정리 작업이 수행되도록 합니다. |
FreeNamedDataSlot(String) |
프로세스의 모든 스레드에 대해 이름과 슬롯 간의 연관을 없앱니다. 성능을 향상시키려면 ThreadStaticAttribute 특성으로 표시된 필드를 대신 사용합니다. |
GetApartmentState() |
아파트 상태를 나타내는 ApartmentState 값을 반환합니다. |
GetCompressedStack() |
사용되지 않음.
사용되지 않음.
현재 스레드 스택을 캡처하는 데 사용할 수 있는 CompressedStack 개체를 반환합니다. |
GetCurrentProcessorId() |
현재 스레드가 실행 중인 프로세서를 나타내는 데 사용되는 ID를 가져옵니다. |
GetData(LocalDataStoreSlot) |
현재 스레드의 도메인 내에서 현재 스레드의 지정된 슬롯에서 값을 검색합니다. 성능을 향상시키려면 ThreadStaticAttribute 특성으로 표시된 필드를 대신 사용합니다. |
GetDomain() |
현재 스레드가 실행 중인 현재 도메인을 반환합니다. |
GetDomainID() |
고유한 애플리케이션 도메인 식별자를 반환합니다. |
GetHashCode() |
현재 스레드의 해시 코드를 반환합니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetNamedDataSlot(String) |
명명된 데이터 슬롯을 찾습니다. 성능을 향상시키려면 ThreadStaticAttribute 특성으로 표시된 필드를 대신 사용합니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
Interrupt() |
WaitSleepJoin 스레드 상태에 있는 스레드를 중단합니다. |
Join() |
표준 COM 및 |
Join(Int32) |
표준 COM 및 SendMessage 펌프를 계속 수행하면서 이 인스턴스가 나타내는 스레드가 종료되거나 지정된 시간이 경과할 때까지 호출 스레드를 차단합니다. |
Join(TimeSpan) |
표준 COM 및 SendMessage 펌프를 계속 수행하면서 이 인스턴스가 나타내는 스레드가 종료되거나 지정된 시간이 경과할 때까지 호출 스레드를 차단합니다. |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
MemoryBarrier() |
다음과 같이 메모리 액세스를 동기화합니다. 현재 스레드를 실행 중인 프로세서는 MemoryBarrier()에 대한 호출 이전의 메모리 액세스가 MemoryBarrier()에 대한 호출 이후의 메모리 액세스 뒤에 실행되는 방식으로 명령을 다시 정렬할 수 없습니다. |
ResetAbort() |
사용되지 않음.
현재 스레드에 대해 요청된 Abort(Object)를 취소합니다. |
Resume() |
사용되지 않음.
사용되지 않음.
사용되지 않음.
일시 중단된 스레드를 다시 시작합니다. |
SetApartmentState(ApartmentState) |
스레드를 시작하기 전에 스레드의 아파트 상태를 설정합니다. |
SetCompressedStack(CompressedStack) |
사용되지 않음.
사용되지 않음.
캡처한 CompressedStack을 현재 스레드에 적용합니다. |
SetData(LocalDataStoreSlot, Object) |
해당 스레드의 현재 도메인에 대해 현재 실행 중인 스레드의 지정된 슬롯에서 데이터를 설정합니다. 성능을 향상시키려면 ThreadStaticAttribute 특성으로 표시된 필드를 대신 사용합니다. |
Sleep(Int32) |
지정된 시간(밀리초) 동안 현재 스레드를 일시 중단합니다. |
Sleep(TimeSpan) |
지정된 시간 동안 현재 스레드를 일시 중단합니다. |
SpinWait(Int32) |
스레드가 |
Start() |
운영 체제에서 현재 인스턴스의 상태를 Running으로 변경하도록 합니다. |
Start(Object) |
운영 체제에서 현재 인스턴스의 상태를 Running으로 변경하도록 하며 경우에 따라 스레드가 실행하는 메서드에 사용될 데이터가 포함된 개체를 제공합니다. |
Suspend() |
사용되지 않음.
사용되지 않음.
사용되지 않음.
스레드를 일시 중단하며 스레드가 이미 일시 중단된 경우에는 아무런 효과도 나타나지 않습니다. |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
TrySetApartmentState(ApartmentState) |
스레드를 시작하기 전에 스레드의 아파트 상태를 설정합니다. |
UnsafeStart() |
운영 체제에서 현재 인스턴스의 상태를 Running으로 변경하도록 합니다. |
UnsafeStart(Object) |
운영 체제에서 현재 인스턴스의 상태를 Running으로 변경하도록 하며 경우에 따라 스레드가 실행하는 메서드에 사용될 데이터가 포함된 개체를 제공합니다. |
VolatileRead(Byte) |
사용되지 않음.
필드의 값을 읽습니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 뒤에 나타나는 경우 프로세서가 이 메서드 앞으로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileRead(Double) |
사용되지 않음.
필드의 값을 읽습니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 뒤에 나타나는 경우 프로세서가 이 메서드 앞으로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileRead(Int16) |
사용되지 않음.
필드의 값을 읽습니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 뒤에 나타나는 경우 프로세서가 이 메서드 앞으로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileRead(Int32) |
사용되지 않음.
필드의 값을 읽습니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 뒤에 나타나는 경우 프로세서가 이 메서드 앞으로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileRead(Int64) |
사용되지 않음.
필드의 값을 읽습니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 뒤에 나타나는 경우 프로세서가 이 메서드 앞으로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileRead(IntPtr) |
사용되지 않음.
필드의 값을 읽습니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 뒤에 나타나는 경우 프로세서가 이 메서드 앞으로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileRead(Object) |
사용되지 않음.
필드의 값을 읽습니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 뒤에 나타나는 경우 프로세서가 이 메서드 앞으로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileRead(SByte) |
사용되지 않음.
필드의 값을 읽습니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 뒤에 나타나는 경우 프로세서가 이 메서드 앞으로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileRead(Single) |
사용되지 않음.
필드의 값을 읽습니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 뒤에 나타나는 경우 프로세서가 이 메서드 앞으로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileRead(UInt16) |
사용되지 않음.
필드의 값을 읽습니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 뒤에 나타나는 경우 프로세서가 이 메서드 앞으로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileRead(UInt32) |
사용되지 않음.
필드의 값을 읽습니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 뒤에 나타나는 경우 프로세서가 이 메서드 앞으로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileRead(UInt64) |
사용되지 않음.
필드의 값을 읽습니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 뒤에 나타나는 경우 프로세서가 이 메서드 앞으로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileRead(UIntPtr) |
사용되지 않음.
필드의 값을 읽습니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 뒤에 나타나는 경우 프로세서가 이 메서드 앞으로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileWrite(Byte, Byte) |
사용되지 않음.
필드에 값을 씁니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 앞에 나타나는 경우 프로세서가 이 메서드 뒤로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileWrite(Double, Double) |
사용되지 않음.
필드에 값을 씁니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 앞에 나타나는 경우 프로세서가 이 메서드 뒤로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileWrite(Int16, Int16) |
사용되지 않음.
필드에 값을 씁니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 앞에 나타나는 경우 프로세서가 이 메서드 뒤로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileWrite(Int32, Int32) |
사용되지 않음.
필드에 값을 씁니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 앞에 나타나는 경우 프로세서가 이 메서드 뒤로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileWrite(Int64, Int64) |
사용되지 않음.
필드에 값을 씁니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 앞에 나타나는 경우 프로세서가 이 메서드 뒤로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileWrite(IntPtr, IntPtr) |
사용되지 않음.
필드에 값을 씁니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 앞에 나타나는 경우 프로세서가 이 메서드 뒤로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileWrite(Object, Object) |
사용되지 않음.
필드에 값을 씁니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 앞에 나타나는 경우 프로세서가 이 메서드 뒤로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileWrite(SByte, SByte) |
사용되지 않음.
필드에 값을 씁니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 앞에 나타나는 경우 프로세서가 이 메서드 뒤로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileWrite(Single, Single) |
사용되지 않음.
필드에 값을 씁니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 앞에 나타나는 경우 프로세서가 이 메서드 뒤로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileWrite(UInt16, UInt16) |
사용되지 않음.
필드에 값을 씁니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 앞에 나타나는 경우 프로세서가 이 메서드 뒤로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileWrite(UInt32, UInt32) |
사용되지 않음.
필드에 값을 씁니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 앞에 나타나는 경우 프로세서가 이 메서드 뒤로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileWrite(UInt64, UInt64) |
사용되지 않음.
필드에 값을 씁니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 앞에 나타나는 경우 프로세서가 이 메서드 뒤로 읽기 또는 쓰기를 이동할 수 없습니다. |
VolatileWrite(UIntPtr, UIntPtr) |
사용되지 않음.
필드에 값을 씁니다. 필요한 시스템에서는 프로세서가 메모리 작업을 다시 정렬하는 것을 막는 메모리 차단을 다음과 같이 삽입합니다. 코드에서 읽기 또는 쓰기가 이 메서드 앞에 나타나는 경우 프로세서가 이 메서드 뒤로 읽기 또는 쓰기를 이동할 수 없습니다. |
Yield() |
호출 스레드가 현재 프로세서에서 실행할 준비가 되어 있는 다른 스레드에 실행 명령을 내리도록 합니다. 운영 체제에서 실행 명령을 내릴 스레드를 선택합니다. |
명시적 인터페이스 구현
_Thread.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다. |
_Thread.GetTypeInfo(UInt32, UInt32, IntPtr) |
인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다. |
_Thread.GetTypeInfoCount(UInt32) |
개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1). |
_Thread.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다. |
적용 대상
스레드 보안
이 형식은 스레드로부터 안전합니다.
추가 정보
.NET