ThreadPool.UnsafeQueueUserWorkItem Méthode

Définition

Surcharges

UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Met en file d’attente l’objet élément de travail spécifié dans le pool de threads.

UnsafeQueueUserWorkItem(WaitCallback, Object)

Met le délégué spécifié en file d'attente dans le pool de threads, mais ne propage pas la pile d'appels vers le thread de travail.

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

Place en file d'attente une méthode spécifiée par un délégué Action<T> pour exécution et spécifie un objet contenant les données que la méthode doit utiliser. La méthode s'exécute lorsqu'un thread du pool devient disponible.

UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Met en file d’attente l’objet élément de travail spécifié dans le pool de threads.

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

Paramètres

callBack
IThreadPoolWorkItem

Élément de travail à appeler lorsqu’un thread du pool de threads sélectionne cet élément de travail.

preferLocal
Boolean

true pour placer l’élément de travail dans une file d’attente à proximité du thread actuel ; false pour placer l’élément de travail dans la file d’attente partagée du pool de threads.

Retours

Boolean

true si la méthode est exécutée avec succès ; OutOfMemoryException est levée si l'élément de travail n'a pas pu être placé en file d'attente.

Exceptions

callback a la valeur null.

L’élément de travail est un Task.

L'élément de travail n'a pas pu être placé en file d'attente.

Remarques

Le pool de threads appelle la méthode de l’élément de Execute() travail. Il incombe à cet élément de travail de se propager ExecutionContext s’il est nécessaire ; le pool de threads ne le fera pas.

S’applique à

UnsafeQueueUserWorkItem(WaitCallback, Object)

Met le délégué spécifié en file d'attente dans le pool de threads, mais ne propage pas la pile d'appels vers le thread de travail.

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

Paramètres

callBack
WaitCallback

WaitCallback représentant le délégué à appeler lorsqu’un thread du pool de threads sélectionne l’élément de travail.

state
Object

Objet passé au délégué lors de son traitement dans le pool de threads.

Retours

Boolean

true si la méthode est exécutée avec succès ; OutOfMemoryException est levée si l'élément de travail n'a pas pu être placé en file d'attente.

Attributs

Exceptions

L'appelant n'a pas l'autorisation requise.

Une condition de mémoire insuffisante a été rencontrée.

L'élément de travail n'a pas pu être placé en file d'attente.

callBack a la valeur null.

Remarques

Contrairement à la QueueUserWorkItem méthode, UnsafeQueueUserWorkItem ne propage pas la pile appelante au thread de travail. Cela permet au code de perdre la pile appelante et ainsi d’élever ses privilèges de sécurité.

Attention

L’utilisation UnsafeQueueUserWorkItem pourrait ouvrir par inadvertance un trou de sécurité. La sécurité de l’accès au code base ses contrôles d’autorisation sur les autorisations de tous les appelants sur la pile. Lorsque le travail est mis en file d’attente sur un thread de pool de threads à l’aide UnsafeQueueUserWorkItemd’un thread de pool de threads, la pile du thread de pool de threads n’a pas le contexte des appelants réels. Le code malveillant peut être en mesure d’exploiter ce code pour éviter les vérifications d’autorisation.

Voir aussi

S’applique à

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

Place en file d'attente une méthode spécifiée par un délégué Action<T> pour exécution et spécifie un objet contenant les données que la méthode doit utiliser. La méthode s'exécute lorsqu'un thread du pool devient disponible.

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

Paramètres de type

TState

Le type des éléments de state.

Paramètres

callBack
Action<TState>

Délégué représentant la méthode à exécuter.

state
TState

Objet contenant les données que la méthode doit utiliser.

preferLocal
Boolean

true pour placer l’élément de travail dans une file d’attente à proximité du thread actuel ; false pour placer l’élément de travail dans la file d’attente partagée du pool de threads.

Retours

Boolean

true si la méthode est placée en file d'attente avec succès ; NotSupportedException est levé si l'élément de travail n'a pas pu être placé en file d'attente.

Exceptions

callback a la valeur null.

L'élément de travail n'a pas pu être placé en file d'attente.

S’applique à