ThreadPool.UnsafeQueueUserWorkItem 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean) |
지정된 작업 항목 개체를 스레드 풀의 큐에 넣습니다. |
UnsafeQueueUserWorkItem(WaitCallback, Object) |
지정된 대리자를 스레드 풀에 대기시키지만 호출 스택을 작업자 스레드에 전파하지 않습니다. |
UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean) |
실행을 위해 Action<T> 대리자에 의해 지정된 메서드를 큐에 대기시키고 메서드에서 사용할 데이터가 들어 있는 개체를 지정합니다. 이 메서드는 스레드 풀 스레드를 사용할 수 있을 때 실행됩니다. |
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)
지정된 작업 항목 개체를 스레드 풀의 큐에 넣습니다.
public:
static bool UnsafeQueueUserWorkItem(System::Threading::IThreadPoolWorkItem ^ callBack, bool preferLocal);
public static bool UnsafeQueueUserWorkItem (System.Threading.IThreadPoolWorkItem callBack, bool preferLocal);
static member UnsafeQueueUserWorkItem : System.Threading.IThreadPoolWorkItem * bool -> bool
Public Shared Function UnsafeQueueUserWorkItem (callBack As IThreadPoolWorkItem, preferLocal As Boolean) As Boolean
매개 변수
- callBack
- IThreadPoolWorkItem
스레드 풀에 있는 스레드에서 작업 항목을 선택할 때 호출하는 작업 항목입니다.
- preferLocal
- Boolean
현재 스레드에 가까운 큐에 작업 항목을 넣으려면 true
이고, 스레드 풀의 공유 큐에 작업 항목을 넣으려면 false
입니다.
반환
메서드가 성공하면 true
이고, 작업 항목을 큐에 대기할 수 없으면 OutOfMemoryException이 발생합니다.
예외
callback
이(가) null
인 경우
작업 항목은 Task입니다.
작업 항목을 큐에 대기할 수 없는 경우
설명
스레드 풀은 작업 항목의 Execute() 메서드를 호출합니다. 필요한 경우 해당 작업 항목을 전파 ExecutionContext 해야 합니다. 스레드 풀은 전파하지 않습니다.
적용 대상
UnsafeQueueUserWorkItem(WaitCallback, Object)
지정된 대리자를 스레드 풀에 대기시키지만 호출 스택을 작업자 스레드에 전파하지 않습니다.
public:
static bool UnsafeQueueUserWorkItem(System::Threading::WaitCallback ^ callBack, System::Object ^ state);
public static bool UnsafeQueueUserWorkItem (System.Threading.WaitCallback callBack, object? state);
public static bool UnsafeQueueUserWorkItem (System.Threading.WaitCallback callBack, object state);
[System.Security.SecurityCritical]
public static bool UnsafeQueueUserWorkItem (System.Threading.WaitCallback callBack, object state);
static member UnsafeQueueUserWorkItem : System.Threading.WaitCallback * obj -> bool
[<System.Security.SecurityCritical>]
static member UnsafeQueueUserWorkItem : System.Threading.WaitCallback * obj -> bool
Public Shared Function UnsafeQueueUserWorkItem (callBack As WaitCallback, state As Object) As Boolean
매개 변수
- callBack
- WaitCallback
스레드 풀에 있는 스레드에서 작업 항목을 선택할 때 호출되는 대리자를 나타내는 WaitCallback입니다.
- state
- Object
스레드 풀에서 제공할 때 대리자에 전달되는 개체입니다.
반환
메서드가 성공하면 true
이고, 작업 항목을 큐에 대기할 수 없으면 OutOfMemoryException이 발생합니다.
- 특성
예외
호출자에게 필요한 권한이 없는 경우
메모리가 부족한 경우
작업 항목을 큐에 대기할 수 없는 경우
callBack
이(가) null
인 경우
설명
메서드 UnsafeQueueUserWorkItem 와 QueueUserWorkItem 달리 호출 스택을 작업자 스레드로 전파하지 않습니다. 이렇게 하면 코드가 호출 스택을 손실하여 보안 권한을 높일 수 있습니다.
주의
사용하면 UnsafeQueueUserWorkItem 실수로 보안 구멍이 열릴 수 있습니다. 코드 액세스 보안은 스택에 있는 모든 호출자의 권한에 대한 권한 검사를 기반으로 합니다. 작업을 사용하여 UnsafeQueueUserWorkItem스레드 풀 스레드에서 큐에 대기하는 경우 스레드 풀 스레드의 스택에는 실제 호출자의 컨텍스트가 없습니다. 악성 코드는 사용 권한 검사를 방지하기 위해 이를 악용할 수 있습니다.
추가 정보
적용 대상
UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean)
실행을 위해 Action<T> 대리자에 의해 지정된 메서드를 큐에 대기시키고 메서드에서 사용할 데이터가 들어 있는 개체를 지정합니다. 이 메서드는 스레드 풀 스레드를 사용할 수 있을 때 실행됩니다.
public:
generic <typename TState>
static bool UnsafeQueueUserWorkItem(Action<TState> ^ callBack, TState state, bool preferLocal);
public static bool UnsafeQueueUserWorkItem<TState> (Action<TState> callBack, TState state, bool preferLocal);
static member UnsafeQueueUserWorkItem : Action<'State> * 'State * bool -> bool
Public Shared Function UnsafeQueueUserWorkItem(Of TState) (callBack As Action(Of TState), state As TState, preferLocal As Boolean) As Boolean
형식 매개 변수
- TState
state
의 요소 형식입니다.
매개 변수
- callBack
- Action<TState>
실행할 메서드를 나타내는 대리자입니다.
- state
- TState
메서드에서 사용할 데이터가 들어 있는 개체입니다.
- preferLocal
- Boolean
현재 스레드에 가까운 큐에 작업 항목을 넣으려면 true
이고, 스레드 풀의 공유 큐에 작업 항목을 넣으려면 false
입니다.
반환
메서드가 성공적으로 큐에 대기되면 true
이고, 작업 항목을 큐에 대기할 수 없으면 NotSupportedException이 throw됩니다.
예외
callback
이(가) null
인 경우
작업 항목을 큐에 대기할 수 없는 경우