ThreadPool.UnsafeQueueUserWorkItem Método

Definição

Sobrecargas

Name Description
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Coloca o objeto de trabalho especificado na fila para o pool de threads.

UnsafeQueueUserWorkItem(WaitCallback, Object)

Coloca o delegado especificado na fila para o pool de threads, mas não propaga a pilha que chama para o thread de trabalho.

UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean)

Coloca em fila um método especificado por um Action<T> delegado para execução e especifica um objeto contendo dados a serem usados pelo método. O método é executado quando um thread pool fica disponível.

UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Origem:
ThreadPoolWorkQueue.cs
Origem:
ThreadPoolWorkQueue.cs
Origem:
ThreadPoolWorkQueue.cs
Origem:
ThreadPoolWorkQueue.cs
Origem:
ThreadPoolWorkQueue.cs

Coloca o objeto de trabalho especificado na fila para o pool de threads.

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

O item de trabalho a invocar quando um thread no pool de threads apanha o item de trabalho.

preferLocal
Boolean

true preferir colocar o item de trabalho numa fila próxima do thread atual; false para preferir colocar o item de trabalho na fila partilhada 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.

Exceções

callBack é null.

O item de trabalho é um Task.

O item de trabalho não podia ser colocado em fila.

Observações

O pool de threads irá invocar o método do Execute() item de trabalho. É responsabilidade desse item de trabalho propagar-se ExecutionContext se necessário; o pool de threads não o fará.

Aplica-se a

UnsafeQueueUserWorkItem(WaitCallback, Object)

Origem:
ThreadPoolWorkQueue.cs
Origem:
ThreadPoolWorkQueue.cs
Origem:
ThreadPoolWorkQueue.cs
Origem:
ThreadPoolWorkQueue.cs
Origem:
ThreadPoolWorkQueue.cs

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);
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.

Ver também

Aplica-se a

UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean)

Origem:
ThreadPoolWorkQueue.cs
Origem:
ThreadPoolWorkQueue.cs
Origem:
ThreadPoolWorkQueue.cs
Origem:
ThreadPoolWorkQueue.cs
Origem:
ThreadPoolWorkQueue.cs

Coloca em fila um método especificado por um Action<T> delegado para execução e especifica um objeto contendo dados a serem usados pelo método. O método é executado quando um thread pool fica disponível.

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 Genérico

TState

O tipo de elementos de state.

Parâmetros

callBack
Action<TState>

Um delegado que representa o método a executar.

state
TState

Um objeto contendo dados a serem usados pelo método.

preferLocal
Boolean

true preferir colocar o item de trabalho numa fila próxima do thread atual; false para preferir colocar o item de trabalho na fila partilhada do pool de threads.

Devoluções

true se o método for colocado em fila com sucesso; NotSupportedException é lançado se o item de trabalho não puder ser colocado na fila.

Exceções

callBack é null.

O item de trabalho não podia ser colocado em fila.

Aplica-se a