Thread Classe

Definição

Cria e controla um thread, define sua prioridade e obtém seu status.

public ref class Thread sealed : System::Runtime::InteropServices::_Thread
public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject, System::Runtime::InteropServices::_Thread
public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.InteropServices._Thread
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.Runtime.InteropServices._Thread
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
    interface _Thread
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Thread = class
    inherit CriticalFinalizerObject
    interface _Thread
type Thread = class
    inherit CriticalFinalizerObject
Public NotInheritable Class Thread
Implements _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Implements _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Herança
Thread
Herança
Atributos
Implementações

Comentários

Para obter mais informações sobre essa API, consulte comentários de API Suplementar para Thread.

Construtores

Nome Description
Thread(ParameterizedThreadStart, Int32)

Inicializa uma nova instância da Thread classe, especificando um delegado que permite que um objeto seja passado para o thread quando o thread for iniciado e especificando o tamanho máximo da pilha para o thread.

Thread(ParameterizedThreadStart)

Inicializa uma nova instância da Thread classe, especificando um delegado que permite que um objeto seja passado para o thread quando o thread for iniciado.

Thread(ThreadStart, Int32)

Inicializa uma nova instância da Thread classe, especificando o tamanho máximo da pilha para o thread.

Thread(ThreadStart)

Inicializa uma nova instância da classe Thread.

Propriedades

Nome Description
ApartmentState
Obsoleto.

Obtém ou define o estado do apartamento deste thread.

CurrentContext

Obtém o contexto atual no qual o thread está sendo executado.

CurrentCulture

Obtém ou define a cultura do thread atual.

CurrentPrincipal

Obtém ou define a entidade de segurança atual do thread (para segurança baseada em função).

CurrentThread

Obtém o thread em execução no momento.

CurrentUICulture

Obtém ou define a cultura atual usada pelo Gerenciador de Recursos para pesquisar recursos específicos da cultura em tempo de execução.

ExecutionContext

Obtém um ExecutionContext objeto que contém informações sobre os vários contextos do thread atual.

IsAlive

Obtém um valor que indica o status de execução do thread atual.

IsBackground

Obtém ou define um valor que indica se um thread é ou não um thread em segundo plano.

IsThreadPoolThread

Obtém um valor que indica se um thread pertence ou não ao pool de threads gerenciado.

ManagedThreadId

Obtém um identificador exclusivo para o thread gerenciado atual.

Name

Obtém ou define o nome do thread.

Priority

Obtém ou define um valor que indica a prioridade de agendamento de um thread.

ThreadState

Obtém um valor que contém os estados do thread atual.

Métodos

Nome Description
Abort()

Gera um ThreadAbortException thread no qual ele é invocado, para iniciar o processo de encerramento do thread. Chamar esse método geralmente encerra o thread.

Abort(Object)

Gera um ThreadAbortException thread no qual ele é invocado, para iniciar o processo de encerramento do thread, ao mesmo tempo em que fornece informações de exceção sobre o término do thread. Chamar esse método geralmente encerra o thread.

AllocateDataSlot()

Aloca um slot de dados sem nome em todos os threads. Para obter um melhor desempenho, use campos marcados com o ThreadStaticAttribute atributo.

AllocateNamedDataSlot(String)

Aloca um slot de dados nomeado em todos os threads. Para obter um melhor desempenho, use campos marcados com o ThreadStaticAttribute atributo.

BeginCriticalRegion()

Notifica um host de que a execução está prestes a inserir uma região de código na qual os efeitos de uma exceção sem tratamento ou anulação de thread podem comprometer outras tarefas no domínio do aplicativo.

BeginThreadAffinity()

Notifica um host que o código gerenciado está prestes a executar instruções que dependem da identidade do thread atual do sistema operacional físico.

DisableComObjectEagerCleanup()

Desativa a limpeza automática de wrappers callable (RCW) de runtime para o thread atual.

EndCriticalRegion()

Notifica um host de que a execução está prestes a inserir uma região de código na qual os efeitos de uma exceção sem tratamento ou anulação de thread são limitados à tarefa atual.

EndThreadAffinity()

Notifica um host que o código gerenciado terminou de executar instruções que dependem da identidade do thread atual do sistema operacional físico.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Finalize()

Garante que os recursos sejam liberados e outras operações de limpeza sejam executadas quando o coletor de lixo recuperar o Thread objeto.

FreeNamedDataSlot(String)

Elimina a associação entre um nome e um slot para todos os threads no processo. Para obter um melhor desempenho, use campos marcados com o ThreadStaticAttribute atributo.

GetApartmentState()

Retorna um ApartmentState valor que indica o estado do apartamento.

GetCompressedStack()
Obsoleto.

Retorna um CompressedStack objeto que pode ser usado para capturar a pilha do thread atual.

GetCurrentProcessorId()

Obtém uma ID usada para indicar em qual processador o thread atual está sendo executado.

GetData(LocalDataStoreSlot)

Recupera o valor do slot especificado no thread atual, dentro do domínio atual do thread atual. Para obter um melhor desempenho, use campos marcados com o ThreadStaticAttribute atributo.

GetDomain()

Retorna o domínio atual no qual o thread atual está em execução.

GetDomainID()

Retorna um identificador de domínio de aplicativo exclusivo.

GetHashCode()

Retorna um código hash para o thread atual.

GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetNamedDataSlot(String)

Pesquisa um slot de dados nomeado. Para obter um melhor desempenho, use campos marcados com o ThreadStaticAttribute atributo.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
Interrupt()

Interrompe um thread que está no estado do WaitSleepJoin thread.

Join()

Bloqueia o thread de chamada até que o thread representado por essa instância seja encerrado, enquanto continua a executar o COM padrão e o SendMessage bombeamento.

Join(Int32)

Bloqueia o thread de chamada até que o thread representado por essa instância termine ou o tempo especificado decorrido, enquanto continua a executar o bombeamento padrão de COM e SendMessage.

Join(TimeSpan)

Bloqueia o thread de chamada até que o thread representado por essa instância termine ou o tempo especificado decorrido, enquanto continua a executar o bombeamento padrão de COM e SendMessage.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
MemoryBarrier()

Sincroniza o acesso à memória da seguinte maneira: o processador que executa o thread atual não pode reordenar instruções de modo que a memória acesse antes da chamada a MemoryBarrier() ser executada após os acessos de memória que seguem a chamada para MemoryBarrier().

ResetAbort()

Cancela uma solicitação Abort(Object) para o thread atual.

Resume()
Obsoleto.
Obsoleto.

Retoma um thread que foi suspenso.

SetApartmentState(ApartmentState)

Define o estado do apartamento de um thread antes de ser iniciado.

SetCompressedStack(CompressedStack)
Obsoleto.

Aplica um capturado CompressedStack ao thread atual.

SetData(LocalDataStoreSlot, Object)

Define os dados no slot especificado no thread em execução no momento, para o domínio atual desse thread. Para obter um melhor desempenho, use campos marcados com o ThreadStaticAttribute atributo.

Sleep(Int32)

Suspende o thread atual para o número especificado de milissegundos.

Sleep(TimeSpan)

Suspende o thread atual pela quantidade de tempo especificada.

SpinWait(Int32)

Faz com que um thread aguarde o número de vezes definido pelo iterations parâmetro.

Start()

Faz com que o sistema operacional altere o estado da instância atual para Running.

Start(Object)

Faz com que o sistema operacional altere o estado da instância Runningatual e, opcionalmente, fornece um objeto que contém dados a serem usados pelo método que o thread executa.

Suspend()
Obsoleto.
Obsoleto.

Suspender o thread ou, se o thread já estiver suspenso, não terá efeito.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
TrySetApartmentState(ApartmentState)

Define o estado do apartamento de um thread antes de ser iniciado.

VolatileRead(Byte)

Lê o valor de um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer após esse método no código, o processador não poderá movê-lo antes desse método.

VolatileRead(Double)

Lê o valor de um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer após esse método no código, o processador não poderá movê-lo antes desse método.

VolatileRead(Int16)

Lê o valor de um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer após esse método no código, o processador não poderá movê-lo antes desse método.

VolatileRead(Int32)

Lê o valor de um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer após esse método no código, o processador não poderá movê-lo antes desse método.

VolatileRead(Int64)

Lê o valor de um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer após esse método no código, o processador não poderá movê-lo antes desse método.

VolatileRead(IntPtr)

Lê o valor de um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer após esse método no código, o processador não poderá movê-lo antes desse método.

VolatileRead(Object)

Lê o valor de um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer após esse método no código, o processador não poderá movê-lo antes desse método.

VolatileRead(SByte)

Lê o valor de um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer após esse método no código, o processador não poderá movê-lo antes desse método.

VolatileRead(Single)

Lê o valor de um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer após esse método no código, o processador não poderá movê-lo antes desse método.

VolatileRead(UInt16)

Lê o valor de um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer após esse método no código, o processador não poderá movê-lo antes desse método.

VolatileRead(UInt32)

Lê o valor de um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer após esse método no código, o processador não poderá movê-lo antes desse método.

VolatileRead(UInt64)

Lê o valor de um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer após esse método no código, o processador não poderá movê-lo antes desse método.

VolatileRead(UIntPtr)

Lê o valor de um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer após esse método no código, o processador não poderá movê-lo antes desse método.

VolatileWrite(Byte, Byte)

Grava um valor em um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer antes desse método no código, o processador não poderá movê-lo após esse método.

VolatileWrite(Double, Double)

Grava um valor em um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer antes desse método no código, o processador não poderá movê-lo após esse método.

VolatileWrite(Int16, Int16)

Grava um valor em um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer antes desse método no código, o processador não poderá movê-lo após esse método.

VolatileWrite(Int32, Int32)

Grava um valor em um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer antes desse método no código, o processador não poderá movê-lo após esse método.

VolatileWrite(Int64, Int64)

Grava um valor em um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer antes desse método no código, o processador não poderá movê-lo após esse método.

VolatileWrite(IntPtr, IntPtr)

Grava um valor em um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer antes desse método no código, o processador não poderá movê-lo após esse método.

VolatileWrite(Object, Object)

Grava um valor em um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer antes desse método no código, o processador não poderá movê-lo após esse método.

VolatileWrite(SByte, SByte)

Grava um valor em um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer antes desse método no código, o processador não poderá movê-lo após esse método.

VolatileWrite(Single, Single)

Grava um valor em um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer antes desse método no código, o processador não poderá movê-lo após esse método.

VolatileWrite(UInt16, UInt16)

Grava um valor em um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer antes desse método no código, o processador não poderá movê-lo após esse método.

VolatileWrite(UInt32, UInt32)

Grava um valor em um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer antes desse método no código, o processador não poderá movê-lo após esse método.

VolatileWrite(UInt64, UInt64)

Grava um valor em um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer antes desse método no código, o processador não poderá movê-lo após esse método.

VolatileWrite(UIntPtr, UIntPtr)

Grava um valor em um campo. Em sistemas que exigem isso, insere uma barreira de memória que impede que o processador reordene as operações de memória da seguinte maneira: se uma leitura ou gravação aparecer antes desse método no código, o processador não poderá movê-lo após esse método.

Yield()

Faz com que o thread de chamada conceda a execução para outro thread que está pronto para ser executado no processador atual. O sistema operacional seleciona o thread para o qual produzir.

Implantações explícitas de interface

Nome Description
_Thread.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

_Thread.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações do tipo de um objeto, que podem ser usadas para obter informações de tipo para uma interface.

_Thread.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

_Thread.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

Aplica-se a

Acesso thread-safe

Esse tipo é thread safe.

Confira também