ThreadPool.UnsafeQueueUserWorkItem 方法

定義

多載

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 以偏好將工作項目排入執行緒集區的共用佇列。

傳回

Boolean

如果方法成功,則為 true;如果無法將工作項目排入佇列,則會擲回 OutOfMemoryException

例外狀況

callbacknull

工作項目是 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

接受執行緒集區的服務時,傳遞給委派的物件。

傳回

Boolean

如果方法成功,則為 true;如果無法將工作項目排入佇列,則會擲回 OutOfMemoryException

屬性

例外狀況

呼叫端沒有必要的權限。

發生了記憶體不足的狀況。

無法將此工作項目排入佇列中。

callBacknull

備註

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 以偏好將工作項目排入執行緒集區的共用佇列。

傳回

Boolean

如果方法成功佇列則為 true;如果工作項目無法佇列則會擲回 NotSupportedException

例外狀況

callbacknull

無法將此工作項目排入佇列中。

適用於