ThreadPool.UnsafeQueueUserWorkItem Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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
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
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.