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.Queues the specified work item object to the thread pool.

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.Queues the specified delegate to the thread pool, but does not propagate the calling stack to the worker thread.

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.Queues a method specified by an Action<T> delegate for execution, and specifies an object containing data to be used by the method. La méthode s'exécute lorsqu'un thread du pool devient disponible.The method executes when a thread pool thread becomes available.

UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Met en file d’attente l’objet élément de travail spécifié dans le pool de threads.Queues the specified work item object to the thread pool.

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.The work item to invoke when a thread in the thread pool picks up the work item.

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.true to prefer queueing the work item in a queue close to the current thread; false to prefer queueing the work item to the thread pool's shared queue.

Retours

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.true if the method succeeds; OutOfMemoryException is thrown if the work item could not be queued.

Exceptions

callback a la valeur null.callback is null.

L’élément de travail est un Task.The work item is a Task.

L'élément de travail n'a pas pu être placé en file d'attente.The work item could not be queued.

Remarques

Le pool de threads appellera la méthode Execute() de l’élément de travail.The thread pool will invoke the work item's Execute() method. Il est de la responsabilité de cet élément de travail de se propager ExecutionContext, le cas échéant ; le pool de threads ne le fait pas.It is the responsibility of that work item to propagate ExecutionContext if it's needed; the thread pool will not do so.

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.Queues the specified delegate to the thread pool, but does not propagate the calling stack to the worker thread.

public:
 static bool UnsafeQueueUserWorkItem(System::Threading::WaitCallback ^ callBack, System::Object ^ state);
[System.Security.SecurityCritical]
public static bool UnsafeQueueUserWorkItem (System.Threading.WaitCallback callBack, object state);
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.A WaitCallback that represents the delegate to invoke when a thread in the thread pool picks up the work item.

state
Object

Objet passé au délégué lors de son traitement dans le pool de threads.The object that is passed to the delegate when serviced from the thread pool.

Retours

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.true if the method succeeds; OutOfMemoryException is thrown if the work item could not be queued.

Attributs

Exceptions

L'appelant n'a pas l'autorisation requise.The caller does not have the required permission.

Une condition de mémoire insuffisante a été rencontrée.An out-of-memory condition was encountered.

L'élément de travail n'a pas pu être placé en file d'attente.The work item could not be queued.

callBack est null.callBack is null.

Remarques

Contrairement à la méthode QueueUserWorkItem, UnsafeQueueUserWorkItem ne propage pas la pile appelante vers le thread de travail.Unlike the QueueUserWorkItem method, UnsafeQueueUserWorkItem does not propagate the calling stack to the worker thread. Cela permet au code de perdre la pile d’appel et, par conséquent, d’élever ses privilèges de sécurité.This allows code to lose the calling stack and thereby to elevate its security privileges.

Attention

L’utilisation de UnsafeQueueUserWorkItem peut ouvrir par inadvertance une brèche de sécurité.Using UnsafeQueueUserWorkItem could inadvertently open up a security hole. La sécurité d’accès du code fonde ses contrôles d’autorisation sur les autorisations de tous les appelants sur la pile.Code access security bases its permission checks on the permissions of all the callers on the stack. Quand le travail est mis en file d’attente sur un thread de pool de threads à l’aide de UnsafeQueueUserWorkItem, la pile du thread de pool de threads n’a pas le contexte des appelants réels.When work is queued on a thread pool thread using UnsafeQueueUserWorkItem, the stack of the thread pool thread will not have the context of the actual callers. Un code malveillant peut être en mesure de l’exploiter pour éviter les vérifications d’autorisations.Malicious code might be able exploit this to avoid permission checks.

Sécurité

SecurityCriticalAttribute
Requiert une confiance totale pour l’appelant immédiat.Requires full trust for the immediate caller. Ce membre ne peut pas être utilisé par du code de confiance partielle ou transparent.This member cannot be used by partially trusted or transparent code.

Voir aussi

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.Queues a method specified by an Action<T> delegate for execution, and specifies an object containing data to be used by the method. La méthode s'exécute lorsqu'un thread du pool devient disponible.The method executes when a thread pool thread becomes available.

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.The type of elements of state.

Paramètres

callBack
Action<TState>

Délégué représentant la méthode à exécuter.A delegate representing the method to execute.

state
TState

Objet contenant les données que la méthode doit utiliser.An object containing data to be used by the method.

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.true to prefer queueing the work item in a queue close to the current thread; false to prefer queueing the work item to the thread pool's shared queue.

Retours

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.true if the method is successfully queued; NotSupportedException is thrown if the work item could not be queued.

Exceptions

callback a la valeur null.callback is null.

L'élément de travail n'a pas pu être placé en file d'attente.The work item could not be queued.

S’applique à