ThreadPool.UnsafeQueueUserWorkItem Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean) |
Accoda l'oggetto elemento di lavoro specificato nel pool di thread. |
UnsafeQueueUserWorkItem(WaitCallback, Object) |
Accoda il delegato specificato al pool di thread, ma non propaga lo stack di chiamata nel thread di lavoro. |
UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean) |
Accoda un metodo specificato da un delegato Action<T> per l'esecuzione e specifica un oggetto che contiene i dati che dovranno essere usati dal metodo. Il metodo viene eseguito quando un thread del pool di thread diventa disponibile. |
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)
- Origine:
- ThreadPoolWorkQueue.cs
- Origine:
- ThreadPoolWorkQueue.cs
- Origine:
- ThreadPoolWorkQueue.cs
Accoda l'oggetto elemento di lavoro specificato nel 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 l'accodamento dell'elemento di lavoro in una coda vicino al thread corrente; false
per preferire l'accodamento dell'elemento di lavoro nella coda condivisa del pool di thread.
Restituisce
true
se il metodo viene eseguito correttamente. Viene generata l'eccezione OutOfMemoryException se non è stato possibile accodare l'elemento di lavoro.
Eccezioni
callback
è null
.
L'elemento di lavoro è un Task.
Non è stato possibile accodare l'elemento di lavoro.
Commenti
Il pool di thread richiama il metodo dell'elemento di Execute() lavoro. È responsabilità di tale elemento di lavoro propagare 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
Accoda il delegato specificato al pool di thread, ma non propaga lo stack di chiamata nel 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 sceglie l'elemento di lavoro.
- state
- Object
Oggetto passato al delegato quando viene servito dal pool di thread.
Restituisce
true
se il metodo viene eseguito correttamente. Viene generata l'eccezione OutOfMemoryException 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.
Non è stato possibile 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 quindi di elevare i privilegi di sicurezza.
Attenzione
L'uso UnsafeQueueUserWorkItem potrebbe aprire inavvertitamente un buco di sicurezza. L'accesso al codice si basa sulle 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 controlli delle autorizzazioni.
Vedi anche
Si applica a
UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean)
- Origine:
- ThreadPoolWorkQueue.cs
- Origine:
- ThreadPoolWorkQueue.cs
- Origine:
- ThreadPoolWorkQueue.cs
Accoda un metodo specificato da un delegato Action<T> per l'esecuzione e specifica un oggetto che contiene i dati che dovranno essere usati dal metodo. Il metodo viene eseguito quando un thread del pool di thread diventa disponibile.
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 degli elementi di state
.
Parametri
- callBack
- Action<TState>
Delegato che rappresenta il metodo da eseguire.
- state
- TState
Oggetto contenente i dati che devono essere usati dal metodo.
- preferLocal
- Boolean
true
per preferire l'accodamento dell'elemento di lavoro in una coda vicino al thread corrente; false
per preferire l'accodamento dell'elemento di lavoro nella coda condivisa del pool di thread.
Restituisce
true
se il metodo viene accodato correttamente. Viene generata l'eccezione NotSupportedException se non è stato possibile accodare l'elemento di lavoro.
Eccezioni
callback
è null
.
Non è stato possibile accodare l'elemento di lavoro.