ThreadPool.UnsafeQueueUserWorkItem Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean) |
Pone en cola el objeto del elemento de trabajo especificado en el grupo de subprocesos. |
UnsafeQueueUserWorkItem(WaitCallback, Object) |
Pone en cola el delegado especificado en el grupo de subprocesos, pero no propaga la pila de llamadas al subproceso de trabajo. |
UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean) |
Pone un método en cola para su ejecución especificado por un delegado de Action<T> y especifica un objeto que contiene los datos que debe usar el método. El método se ejecuta cuando hay disponible un subproceso de grupo de subprocesos. |
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)
Pone en cola el objeto del elemento de trabajo especificado en el grupo de subprocesos.
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
Parámetros
- callBack
- IThreadPoolWorkItem
Elemento de trabajo que se va a invocar cuando un subproceso del grupo de subprocesos elige el elemento de trabajo.
- preferLocal
- Boolean
true
si se prefiere poner en cola el elemento de trabajo en una cola junto al subproceso actual; false
si se prefiere poner en cola el elemento de trabajo en la cola compartida del grupo de subprocesos.
Devoluciones
true
si el método se ejecuta correctamente; se produce la excepción OutOfMemoryException si el elemento de trabajo no se puede poner en la cola.
Excepciones
callback
es null
.
El elemento de trabajo es Task.
No se pudo poner en la cola el elemento de trabajo.
Comentarios
El grupo de subprocesos invocará el método del elemento de Execute() trabajo. Es responsabilidad de ese elemento de trabajo propagarse ExecutionContext si es necesario; el grupo de subprocesos no lo hará.
Se aplica a
UnsafeQueueUserWorkItem(WaitCallback, Object)
Pone en cola el delegado especificado en el grupo de subprocesos, pero no propaga la pila de llamadas al subproceso de trabajo.
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
Parámetros
- callBack
- WaitCallback
WaitCallback que representa el delegado al que se va a invocar cuando un subproceso del grupo de subprocesos seleccione el elemento de trabajo.
- state
- Object
Objeto que se pasa al delegado cuando se atiende desde el grupo de subprocesos.
Devoluciones
true
si el método se ejecuta correctamente; se produce la excepción OutOfMemoryException si el elemento de trabajo no se puede poner en la cola.
- Atributos
Excepciones
El llamador no dispone del permiso requerido.
Se ha encontrado una condición de falta de memoria.
No se pudo poner en la cola el elemento de trabajo.
callBack
es null
.
Comentarios
A diferencia del QueueUserWorkItem método , UnsafeQueueUserWorkItem no propaga la pila de llamadas al subproceso de trabajo. Esto permite que el código pierda la pila de llamadas y, por tanto, elevar sus privilegios de seguridad.
Precaución
Usar UnsafeQueueUserWorkItem podría abrir accidentalmente un agujero de seguridad. La seguridad de acceso al código basa sus comprobaciones de permisos en los permisos de todos los llamadores de la pila. Cuando el trabajo se pone en cola en un subproceso de grupo de subprocesos mediante UnsafeQueueUserWorkItem, la pila del subproceso del grupo de subprocesos no tendrá el contexto de los autores de llamadas reales. Es posible que el código malintencionado pueda aprovechar esto para evitar comprobaciones de permisos.
Consulte también
Se aplica a
UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean)
Pone un método en cola para su ejecución especificado por un delegado de Action<T> y especifica un objeto que contiene los datos que debe usar el método. El método se ejecuta cuando hay disponible un subproceso de grupo de subprocesos.
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
Parámetros de tipo
- TState
Tipo de elementos de state
.
Parámetros
- callBack
- Action<TState>
Un delegado que representa el método que se va a ejecutar.
- state
- TState
Objeto que contiene los datos que va a usar el método.
- preferLocal
- Boolean
true
si se prefiere poner en cola el elemento de trabajo en una cola junto al subproceso actual; false
si se prefiere poner en cola el elemento de trabajo en la cola compartida del grupo de subprocesos.
Devoluciones
true
si el método se pone en la cola correctamente; se produce la excepción NotSupportedException si no se puede poner en la cola el elemento de trabajo.
Excepciones
callback
es null
.
No se pudo poner en la cola el elemento de trabajo.