ThreadPool.UnsafeQueueUserWorkItem(WaitCallback, Object) Método

Definición

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.

Se aplica a

Consulte también