ThreadPool.UnsafeQueueUserWorkItem(WaitCallback, Object) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Coloca o delegado especificado na fila para o pool de threads, mas não propaga a pilha que chama para o thread de trabalho.
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
A WaitCallback que representa o delegado a invocar quando uma thread no pool de threads apanha o item de trabalho.
- state
- Object
O objeto que é passado ao delegado quando servido a partir do pool de threads.
Devoluções
true se o método tiver sucesso; OutOfMemoryException é lançado se o item de trabalho não puder ser colocado na fila.
- Atributos
Exceções
O interlocutor não tem a permissão necessária.
Foi encontrada uma condição de falta de memória.
O item de trabalho não podia ser colocado em fila.
callBack é null.
Observações
Ao contrário do QueueUserWorkItem método, UnsafeQueueUserWorkItem não propaga a pilha de chamada para o thread de trabalho. Isto permite que o código perca a pilha de chamadas e, assim, eleve os seus privilégios de segurança.
Atenção
Usar UnsafeQueueUserWorkItem pode inadvertidamente abrir uma falha de segurança. A segurança de acesso ao código baseia as verificações de permissões nas permissões de todos os chamadores na pilha. Quando o trabalho é enfileirado num thread pool usando UnsafeQueueUserWorkItem, a pilha do thread pool de threads não terá o contexto dos chamadores reais. Código malicioso pode ser capaz de explorar isto para evitar verificações de permissões.