ExecutionContext 클래스

정의

현재 스레드에 대한 실행 컨텍스트를 관리합니다.Manages the execution context for the current thread. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

public ref class ExecutionContext sealed
public ref class ExecutionContext sealed : IDisposable, System::Runtime::Serialization::ISerializable
public ref class ExecutionContext sealed : System::Runtime::Serialization::ISerializable
public sealed class ExecutionContext
public sealed class ExecutionContext : IDisposable, System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class ExecutionContext : System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class ExecutionContext : IDisposable, System.Runtime.Serialization.ISerializable
type ExecutionContext = class
type ExecutionContext = class
    interface IDisposable
    interface ISerializable
[<System.Serializable>]
type ExecutionContext = class
    interface ISerializable
[<System.Serializable>]
type ExecutionContext = class
    interface IDisposable
    interface ISerializable
Public NotInheritable Class ExecutionContext
Public NotInheritable Class ExecutionContext
Implements IDisposable, ISerializable
Public NotInheritable Class ExecutionContext
Implements ISerializable
상속
ExecutionContext
특성
구현

설명

ExecutionContext클래스는 실행의 논리적 스레드와 관련 된 모든 정보에 대 한 단일 컨테이너를 제공 합니다.The ExecutionContext class provides a single container for all information relevant to a logical thread of execution. .NET Framework에는 보안 컨텍스트, 호출 컨텍스트 및 동기화 컨텍스트가 포함 됩니다.In .NET Framework, this includes security context, call context, and synchronization context. .NET Core에서 보안 컨텍스트 및 호출 컨텍스트는 지원 되지 않지만 일반적으로 가장 컨텍스트와 문화권이 실행 컨텍스트를 사용 하 여 흐릅니다.In .NET Core, the security context and call context are not supported, however, the impersonation context and culture would typically flow with the execution context. 또한 .NET Core에서 동기화 컨텍스트는 실행 컨텍스트와 함께 전달 되지 않지만, .NET Framework 경우에는 경우에 따라 발생 합니다.Also in .NET Core, the synchronization context does not flow with the execution context, whereas in .NET Framework it may in some cases. 자세한 내용은 ExecutionContext Vs SynchronizationContext를 참조 하세요.For more information, see ExecutionContext vs SynchronizationContext.

클래스는 사용자 ExecutionContext 코드에서이 컨텍스트를 캡처 및 사용자 정의 된 비동기 시점 간에 전송 하는 기능을 제공 합니다.The ExecutionContext class provides the functionality for user code to capture and transfer this context across user-defined asynchronous points. 공용 언어 런타임은 관리 되는 ExecutionContext 프로세스 내에서 런타임에 정의 된 비동기 시점 간에가 일관 되 게 전송 되도록 합니다.The common language runtime ensures that the ExecutionContext is consistently transferred across runtime-defined asynchronous points within the managed process.

  • 다음은 .NET Framework에만 적용 됩니다.The following is applicable to .NET Framework only. -

실행 컨텍스트는 관리 되는 COM 아파트와 동일 합니다.An execution context is the managed equivalent of a COM apartment. 애플리케이션 도메인 내에서 전체 실행 컨텍스트 스레드가 전송 될 때마다 전송 되어야 합니다.Within an application domain, the entire execution context must be transferred whenever a thread is transferred. 이러한 상황은 메서드에의 한 전송 Thread.Start , 대부분의 스레드 풀 작업 및 Windows 메시지 펌프를 통한 스레드 마샬링 Windows Forms 발생 합니다.This situation occurs during transfers made by the Thread.Start method, most thread pool operations, and Windows Forms thread marshaling through the Windows message pump. 압축 된 스택을 전송 하지 않는 안전 하지 않은 스레드 풀 작업 (예: 메서드)에서 발생 하지 않습니다 UnsafeQueueUserWorkItem .It does not occur in unsafe thread pool operations (such as the UnsafeQueueUserWorkItem method), which do not transfer the compressed stack. 압축 된 스택이 흐를 때마다 관리 되는 주 서버, 동기화, 로캘 및 사용자 컨텍스트도 흐릅니다.Wherever the compressed stack flows, the managed principal, synchronization, locale, and user context also flow. ExecutionContext클래스는 및 메서드를 제공 하 여 실행 컨텍스트를 가져오고 메서드를 제공 하 여 Capture CreateCopy Run 현재 스레드에 대 한 실행 컨텍스트를 설정 합니다.The ExecutionContext class provides the Capture and CreateCopy methods to get the execution context and the Run method to set the execution context for the current thread.

ExecutionContext다른 스레드에서는 스레드와 연결 된를 설정할 수 없습니다.An ExecutionContext that is associated with a thread cannot be set on another thread. 이렇게 하려고 하면 예외가 throw 됩니다.Attempting to do so will result in an exception being thrown. ExecutionContext한 스레드에서 다른 스레드로를 전파 하려면의 복사본을 만듭니다 ExecutionContext .To propagate the ExecutionContext from one thread to another, make a copy of the ExecutionContext.

내부적으로는에 ExecutionContext 연결 된 모든 데이터를 저장 합니다 LogicalCallContext .Internally, the ExecutionContext stores all data that is associated with the LogicalCallContext. 이렇게 하면 LogicalCallContext ExecutionContext 가 복사 되 고 전송 될 때 데이터를 전파할 수 있습니다.This allows the LogicalCallContext data to be propagated when the ExecutionContext is copied and transferred.

메서드

Capture()

현재 스레드에서 실행 컨텍스트를 캡처합니다.Captures the execution context from the current thread.

CreateCopy()

현재 실행 컨텍스트의 복사본을 만듭니다.Creates a copy of the current execution context.

Dispose()

ExecutionContext 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the current instance of the ExecutionContext class.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetObjectData(SerializationInfo, StreamingContext)

현재 실행 컨텍스트의 인스턴스를 다시 만드는 데 필요한 논리 컨텍스트 정보를 사용하여 지정된 SerializationInfo 개체를 설정합니다.Sets the specified SerializationInfo object with the logical context information needed to recreate an instance of the current execution context.

GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
IsFlowSuppressed()

실행 컨텍스트의 흐름이 현재 억제되는지 여부를 나타냅니다.Indicates whether the flow of the execution context is currently suppressed.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
Restore(ExecutionContext)

캡처된 실행 컨텍스트를 현재 스레드로 복원합니다.Restores a captured execution context on to the current thread.

RestoreFlow()

여러 비동기 스레드 사이의 실행 컨텍스트 흐름을 복원합니다.Restores the flow of the execution context across asynchronous threads.

Run(ExecutionContext, ContextCallback, Object)

현재 스레드의 지정된 실행 컨텍스트에서 메서드를 실행합니다.Runs a method in a specified execution context on the current thread.

SuppressFlow()

여러 비동기 스레드 사이의 실행 컨텍스트 흐름을 억제합니다.Suppresses the flow of the execution context across asynchronous threads.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

적용 대상