Udostępnij za pośrednictwem


ThreadPool.UnsafeQueueUserWorkItem Metoda

Definicja

Przeciążenia

UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Kolejkuje określony obiekt elementu roboczego do puli wątków.

UnsafeQueueUserWorkItem(WaitCallback, Object)

Kolejkuje określonego delegata do puli wątków, ale nie propaguje stosu wywołującego do wątku roboczego.

UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean)

Kolejkuje metodę określoną przez Action<T> delegata do wykonania i określa obiekt zawierający dane, które mają być używane przez metodę . Metoda jest wykonywana, gdy wątek puli wątków stanie się dostępny.

UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Kolejkuje określony obiekt elementu roboczego do puli wątków.

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

Parametry

callBack
IThreadPoolWorkItem

Element roboczy, który ma być wywoływany, gdy wątek w puli wątków pobiera element roboczy.

preferLocal
Boolean

true aby preferować kolejkowanie elementu roboczego w kolejce w pobliżu bieżącego wątku; false aby preferować kolejkowanie elementu roboczego do udostępnionej kolejki puli wątków.

Zwraca

Boolean

true jeśli metoda powiedzie się; OutOfMemoryException jest zgłaszany, jeśli nie można w kolejce elementu roboczego.

Wyjątki

callback to null.

Element roboczy to Task.

Nie można w kolejce elementu roboczego.

Uwagi

Pula wątków wywoła metodę elementu roboczego Execute() . Jest to odpowiedzialność za propagację ExecutionContext tego elementu roboczego, jeśli jest to konieczne. Pula wątków nie zrobi tego.

Dotyczy

UnsafeQueueUserWorkItem(WaitCallback, Object)

Kolejkuje określonego delegata do puli wątków, ale nie propaguje stosu wywołującego do wątku roboczego.

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

Parametry

callBack
WaitCallback

Element WaitCallback reprezentujący delegata, który ma być wywoływany, gdy wątek w puli wątków pobiera element roboczy.

state
Object

Obiekt, który jest przekazywany do delegata podczas obsługi z puli wątków.

Zwraca

Boolean

true jeśli metoda powiedzie się; OutOfMemoryException jest zgłaszany, jeśli nie można w kolejce elementu roboczego.

Atrybuty

Wyjątki

Obiekt wywołujący nie posiada wymaganych uprawnień.

Napotkano warunek braku pamięci.

Nie można w kolejce elementu roboczego.

callBack to null.

Uwagi

QueueUserWorkItem W przeciwieństwie do metody UnsafeQueueUserWorkItem nie propaguje stosu wywołującego do wątku roboczego. Dzięki temu kod może utracić stos wywołujący, a tym samym podnieść jego uprawnienia zabezpieczeń.

Przestroga

Użycie UnsafeQueueUserWorkItem może przypadkowo otworzyć dziurę bezpieczeństwa. Zabezpieczenia dostępu do kodu opierają swoje uprawnienia sprawdza uprawnienia wszystkich wywołujących na stosie. Gdy praca jest kolejkowana w wątku puli wątków przy użyciu metody UnsafeQueueUserWorkItem, stos wątku puli wątków nie będzie miał kontekstu rzeczywistych wywołań. Złośliwy kod może wykorzystać ten kod, aby uniknąć kontroli uprawnień.

Zobacz też

Dotyczy

UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean)

Kolejkuje metodę określoną przez Action<T> delegata do wykonania i określa obiekt zawierający dane, które mają być używane przez metodę . Metoda jest wykonywana, gdy wątek puli wątków stanie się dostępny.

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

Parametry typu

TState

Typ elementów elementu state.

Parametry

callBack
Action<TState>

Delegat reprezentujący metodę do wykonania.

state
TState

Obiekt zawierający dane, które mają być używane przez metodę .

preferLocal
Boolean

true aby preferować kolejkowanie elementu roboczego w kolejce w pobliżu bieżącego wątku; false aby preferować kolejkowanie elementu roboczego do udostępnionej kolejki puli wątków.

Zwraca

Boolean

true jeśli metoda została pomyślnie w kolejce; NotSupportedException jest zgłaszany, jeśli nie można w kolejce elementu roboczego.

Wyjątki

callback to null.

Nie można w kolejce elementu roboczego.

Dotyczy