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
。
備註
QueueUserWorkItem不同于 方法, UnsafeQueueUserWorkItem 不會將呼叫堆疊傳播至背景工作執行緒。 這可讓程式碼遺失呼叫堆疊,進而提升其安全性許可權。
警告
使用 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。
例外狀況
callback
為 null
。
無法將此工作項目排入佇列中。