ThreadPool.UnsafeQueueUserWorkItem(WaitCallback, Object) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Enfileira o delegado especificado para o pool de threads, mas não propaga a pilha de chamadas 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
Um WaitCallback que representa o delegado a ser invocado quando um thread no pool de threads pega o item de trabalho.
- state
- Object
O objeto que é passado para o delegado quando atendido do pool de threads.
Retornos
true se o método for bem-sucedido; OutOfMemoryException será gerado se o item de trabalho não puder ser enfileirado.
- Atributos
Exceções
O chamador não tem a permissão necessária.
Uma condição de memória insuficiente foi encontrada.
Não foi possível enfileirar o item de trabalho.
callBack é null.
Comentários
Ao contrário do QueueUserWorkItem método, UnsafeQueueUserWorkItem não propaga a pilha de chamadas para o thread de trabalho. Isso permite que o código perca a pilha de chamadas e, assim, eleve seus privilégios de segurança.
Caution
Usar UnsafeQueueUserWorkItem pode abrir inadvertidamente uma falha de segurança. A segurança de acesso ao código baseia suas verificações de permissão nas permissões de todos os chamadores na pilha. Quando o trabalho é enfileirado em um thread do pool de threads usando UnsafeQueueUserWorkItem, a pilha do thread do pool de threads não terá o contexto dos chamadores reais. Código mal-intencionado pode ser capaz de explorar isso para evitar verificações de permissão.