ThreadPool.UnsafeQueueUserWorkItem(WaitCallback, Object) 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í.
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);
[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
que WaitCallback representa el delegado que se va a invocar cuando un subproceso del grupo de subprocesos recoge el elemento de trabajo.
- state
- Object
Objeto que se pasa al delegado cuando se realiza el servicio desde el grupo de subprocesos.
Devoluciones
true si el método se realiza correctamente; OutOfMemoryException se produce si no se pudo poner en cola el elemento de trabajo.
- Atributos
Excepciones
El autor de la llamada no tiene el permiso necesario.
Se encontró una condición fuera de memoria.
No se pudo poner en 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.
Caution
El uso 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 llamadores reales. Es posible que el código malintencionado pueda aprovechar esto para evitar comprobaciones de permisos.