ThreadPool.UnsafeQueueUserWorkItem Metodo

Definizione

Overload

Nome Descrizione
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Accoda l'oggetto elemento di lavoro specificato al pool di thread.

UnsafeQueueUserWorkItem(WaitCallback, Object)

Accoda il delegato specificato al pool di thread, ma non propaga lo stack di chiamate al thread di lavoro.

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

Accoda un metodo specificato da un Action<T> delegato per l'esecuzione e specifica un oggetto contenente dati da utilizzare dal metodo . Il metodo viene eseguito quando diventa disponibile un thread del pool di thread.

UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Origine:
ThreadPoolWorkQueue.cs
Origine:
ThreadPoolWorkQueue.cs
Origine:
ThreadPoolWorkQueue.cs
Origine:
ThreadPoolWorkQueue.cs
Origine:
ThreadPoolWorkQueue.cs

Accoda l'oggetto elemento di lavoro specificato al pool di thread.

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

Parametri

callBack
IThreadPoolWorkItem

Elemento di lavoro da richiamare quando un thread nel pool di thread preleva l'elemento di lavoro.

preferLocal
Boolean

true per preferire la coda dell'elemento di lavoro in una coda vicina al thread corrente; false per preferire la coda dell'elemento di lavoro alla coda condivisa del pool di thread.

Valori restituiti

true se il metodo ha esito positivo; OutOfMemoryException viene generata se non è stato possibile accodare l'elemento di lavoro.

Eccezioni

callBack è null.

L'elemento di lavoro è .Task

Impossibile accodare l'elemento di lavoro.

Commenti

Il pool di thread richiamerà il metodo dell'elemento di Execute() lavoro. È responsabilità di tale elemento di lavoro propagarsi ExecutionContext se necessario; il pool di thread non lo farà.

Si applica a

UnsafeQueueUserWorkItem(WaitCallback, Object)

Origine:
ThreadPoolWorkQueue.cs
Origine:
ThreadPoolWorkQueue.cs
Origine:
ThreadPoolWorkQueue.cs
Origine:
ThreadPoolWorkQueue.cs
Origine:
ThreadPoolWorkQueue.cs

Accoda il delegato specificato al pool di thread, ma non propaga lo stack di chiamate al thread di lavoro.

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

Parametri

callBack
WaitCallback

Oggetto WaitCallback che rappresenta il delegato da richiamare quando un thread nel pool di thread preleva l'elemento di lavoro.

state
Object

Oggetto passato al delegato quando viene eseguito il servizio dal pool di thread.

Valori restituiti

true se il metodo ha esito positivo; OutOfMemoryException viene generata se non è stato possibile accodare l'elemento di lavoro.

Attributi

Eccezioni

Il chiamante non dispone dell'autorizzazione richiesta.

È stata rilevata una condizione di memoria insufficiente.

Impossibile accodare l'elemento di lavoro.

callBack è null.

Commenti

A differenza del QueueUserWorkItem metodo , UnsafeQueueUserWorkItem non propaga lo stack di chiamate al thread di lavoro. Ciò consente al codice di perdere lo stack di chiamate e di elevare i privilegi di sicurezza.

Attenzione

L'uso UnsafeQueueUserWorkItem potrebbe aprire inavvertitamente un buco di sicurezza. La sicurezza dell'accesso al codice basa i controlli delle autorizzazioni per le autorizzazioni di tutti i chiamanti nello stack. Quando il lavoro viene accodato in un thread del pool di thread usando UnsafeQueueUserWorkItem, lo stack del thread del pool di thread non avrà il contesto dei chiamanti effettivi. Il codice dannoso potrebbe essere in grado di sfruttarlo per evitare i controlli delle autorizzazioni.

Vedi anche

Si applica a

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

Origine:
ThreadPoolWorkQueue.cs
Origine:
ThreadPoolWorkQueue.cs
Origine:
ThreadPoolWorkQueue.cs
Origine:
ThreadPoolWorkQueue.cs
Origine:
ThreadPoolWorkQueue.cs

Accoda un metodo specificato da un Action<T> delegato per l'esecuzione e specifica un oggetto contenente dati da utilizzare dal metodo . Il metodo viene eseguito quando diventa disponibile un thread del pool di thread.

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

Parametri di tipo

TState

Tipo di elementi di state.

Parametri

callBack
Action<TState>

Delegato che rappresenta il metodo da eseguire.

state
TState

Oggetto contenente dati da utilizzare dal metodo .

preferLocal
Boolean

true per preferire la coda dell'elemento di lavoro in una coda vicina al thread corrente; false per preferire la coda dell'elemento di lavoro alla coda condivisa del pool di thread.

Valori restituiti

true se il metodo viene accodato correttamente; NotSupportedException viene generata se non è stato possibile accodare l'elemento di lavoro.

Eccezioni

callBack è null.

Impossibile accodare l'elemento di lavoro.

Si applica a