ThreadPool.UnsafeQueueUserWorkItem Metoda

Definice

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.

Platí pro