ThreadPool.UnsafeQueueUserWorkItem Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean) |
Za fronty zadaný objekt pracovní položky do fondu vláken. |
UnsafeQueueUserWorkItem(WaitCallback, Object) |
Za frontu zadaného delegáta do fondu vláken, ale nerozšíře zásobník volání do pracovního vlákna. |
UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean) |
Zatáčí metodu určenou delegátem Action<T> ke spuštění do fronty a určuje objekt obsahující data, která má metoda použít. Metoda se spustí, když je k dispozici vlákno fondu vláken. |
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)
- Zdroj:
- ThreadPoolWorkQueue.cs
- Zdroj:
- ThreadPoolWorkQueue.cs
- Zdroj:
- ThreadPoolWorkQueue.cs
Za fronty zadaný objekt pracovní položky do fondu vláken.
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
Pracovní položka, která se má vyvolat, když vlákno ve fondu vláken převezme pracovní položku.
- preferLocal
- Boolean
true
chcete-li upřednostňovat zařadit pracovní položku do fronty v blízkosti aktuálního vlákna; false
, aby se pracovní položka zařadila do fronty do sdílené fronty fondu vláken.
Návraty
true
pokud je metoda úspěšná; OutOfMemoryException je vyvolán, pokud pracovní položka nemohla být zařazena do fronty.
Výjimky
callback
je null
.
Pracovní položka je Task.
Pracovní položku nelze zařadit do fronty.
Poznámky
Fond vláken vyvolá metodu pracovní položky Execute() . V případě potřeby je zodpovědností této pracovní položky, aby se šířily ExecutionContext . Fond vláken to neudělá.
Platí pro
UnsafeQueueUserWorkItem(WaitCallback, Object)
- Zdroj:
- ThreadPoolWorkQueue.cs
- Zdroj:
- ThreadPoolWorkQueue.cs
- Zdroj:
- ThreadPoolWorkQueue.cs
Za frontu zadaného delegáta do fondu vláken, ale nerozšíře zásobník volání do pracovního vlákna.
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
A WaitCallback , který představuje delegát vyvolá, když vlákno ve fondu vláken převezme pracovní položku.
- state
- Object
Objekt, který je předán delegátu při obsluhování z fondu vláken.
Návraty
true
pokud je metoda úspěšná; OutOfMemoryException je vyvolán, pokud pracovní položka nemohla být zařazena do fronty.
- Atributy
Výjimky
Volající nemá požadované oprávnění.
Došlo k nedostatku paměti.
Pracovní položku nelze zařadit do fronty.
callBack
je null
.
Poznámky
QueueUserWorkItem Na rozdíl od metody , UnsafeQueueUserWorkItem nerozšíruje volací zásobník do pracovního vlákna. Díky tomu může kód ztratit volací zásobník a zvýšit tak svá oprávnění zabezpečení.
Upozornění
Použití UnsafeQueueUserWorkItem by mohlo neúmyslně otevřít bezpečnostní díru. Zabezpečení přístupu kódu je při kontrolách oprávnění založená na oprávněních všech volajících v zásobníku. Pokud je práce zařazena do fronty ve vlákně fondu vláken pomocí UnsafeQueueUserWorkItemnástroje , zásobník vlákna fondu vláken nebude obsahovat kontext skutečných volajících. Tento škodlivý kód může zneužít, aby se vyhnul kontrolám oprávnění.
Viz také
Platí pro
UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean)
- Zdroj:
- ThreadPoolWorkQueue.cs
- Zdroj:
- ThreadPoolWorkQueue.cs
- Zdroj:
- ThreadPoolWorkQueue.cs
Zatáčí metodu určenou delegátem Action<T> ke spuštění do fronty a určuje objekt obsahující data, která má metoda použít. Metoda se spustí, když je k dispozici vlákno fondu vláken.
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 prvků .state
Parametry
- callBack
- Action<TState>
Delegát představující metodu, která se má provést.
- state
- TState
Objekt obsahující data, která má být použita metodou .
- preferLocal
- Boolean
true
chcete-li upřednostňovat zařadit pracovní položku do fronty v blízkosti aktuálního vlákna; false
, aby se pracovní položka zařadila do fronty do sdílené fronty fondu vláken.
Návraty
true
pokud je metoda úspěšně zařazena do fronty; NotSupportedException je vyvolán, pokud pracovní položka nemohla být zařazena do fronty.
Výjimky
callback
je null
.
Pracovní položku nelze zařadit do fronty.