Thread Classe

Definição

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

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

Comentários

Para obter mais informações sobre essa API, consulte Comentários sobre a API Complementar para Thread.

Construtores

Thread(ParameterizedThreadStart)

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

Thread(ParameterizedThreadStart, Int32)

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

Thread(ThreadStart)

Inicializa uma nova instância da classe Thread.

Thread(ThreadStart, Int32)

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

Propriedades

ApartmentState
Obsoleto.
Obsoleto.

Obtém ou define o estado de apartment desse thread.

CurrentContext

Obtém o contexto atual no qual o thread está em execução.

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 procurar recursos específicos da cultura em tempo de execução.

ExecutionContext

Obtém um objeto ExecutionContext que contém informações sobre os diversos 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 de segundo plano.

IsThreadPoolThread

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

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

Abort()
Obsoleto.

Gera um ThreadAbortException no thread no qual ele é invocado, para iniciar o processo de encerramento do thread. Geralmente, a chamada a esse método termina o thread.

Abort(Object)
Obsoleto.

Gera um ThreadAbortException no thread no qual ele é invocado, para iniciar o processo de término do thread e ao mesmo tempo fornecer informações de exceção sobre o término do thread. Geralmente, a chamada a esse método termina o thread.

AllocateDataSlot()

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

AllocateNamedDataSlot(String)

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

BeginCriticalRegion()

Notifica um host que a execução está prestes a entrar em uma região de código em que 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 de 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 RCWs (Runtime Callable Wrappers) para o thread atual.

EndCriticalRegion()

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

EndThreadAffinity()

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

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Finalize()

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

FreeNamedDataSlot(String)

Elimina a associação entre um nome e um slot em todos os threads do processo. Para melhorar o desempenho, use os campos marcados com o atributo ThreadStaticAttribute.

GetApartmentState()

Retorna um valor ApartmentState que indica o estado do apartment.

GetCompressedStack()
Obsoleto.
Obsoleto.

Retorna um objeto CompressedStack 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, no domínio atual do thread atual. Para melhorar o desempenho, use os campos marcados com o atributo ThreadStaticAttribute.

GetDomain()

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

GetDomainID()

Retorna um identificador de domínio do aplicativo exclusivo.

GetHashCode()

Retorna um código hash para o thread atual.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetNamedDataSlot(String)

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

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
Interrupt()

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

Join()

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

Join(Int32)

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

Join(TimeSpan)

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

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MemoryBarrier()

Sincroniza o acesso à memória da seguinte maneira: o processador que executa o thread atual não pode reorganizar as instruções de forma que os acessos à memória antes da chamada a MemoryBarrier() sejam executados após os acessos de memória que seguem a chamada a MemoryBarrier().

ResetAbort()
Obsoleto.

Cancela um Abort(Object) solicitado para o thread atual.

Resume()
Obsoleto.
Obsoleto.
Obsoleto.

Retoma um thread que foi suspenso.

SetApartmentState(ApartmentState)

Define o estado do apartment de um thread antes que ele seja iniciado.

SetCompressedStack(CompressedStack)
Obsoleto.
Obsoleto.

Aplica uma CompressedStack capturada ao thread atual.

SetData(LocalDataStoreSlot, Object)

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

Sleep(Int32)

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

Sleep(TimeSpan)

Suspende o thread atual para o período de tempo especificado.

SpinWait(Int32)

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

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 atual para Running e, opcionalmente, fornece um objeto que contém dados a serem usados pelo método executado pelo thread.

Suspend()
Obsoleto.
Obsoleto.
Obsoleto.

Suspende o thread ou, se o thread já está suspenso, não tem efeito.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
TrySetApartmentState(ApartmentState)

Define o estado do apartment de um thread antes que ele seja iniciado.

UnsafeStart()

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

UnsafeStart(Object)

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

VolatileRead(Byte)

Lê o valor de um campo. Em sistemas que precisam dele, 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ê-la para antes desse método.

VolatileRead(Double)

Lê o valor de um campo. Em sistemas que precisam dele, 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ê-la para antes desse método.

VolatileRead(Int16)

Lê o valor de um campo. Em sistemas que precisam dele, 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ê-la para antes desse método.

VolatileRead(Int32)

Lê o valor de um campo. Em sistemas que precisam dele, 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ê-la para antes desse método.

VolatileRead(Int64)

Lê o valor de um campo. Em sistemas que precisam dele, 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ê-la para antes desse método.

VolatileRead(IntPtr)

Lê o valor de um campo. Em sistemas que precisam dele, 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ê-la para antes desse método.

VolatileRead(Object)

Lê o valor de um campo. Em sistemas que precisam dele, 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ê-la para antes desse método.

VolatileRead(SByte)

Lê o valor de um campo. Em sistemas que precisam dele, 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ê-la para antes desse método.

VolatileRead(Single)

Lê o valor de um campo. Em sistemas que precisam dele, 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ê-la para antes desse método.

VolatileRead(UInt16)

Lê o valor de um campo. Em sistemas que precisam dele, 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ê-la para antes desse método.

VolatileRead(UInt32)

Lê o valor de um campo. Em sistemas que precisam dele, 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ê-la para antes desse método.

VolatileRead(UInt64)

Lê o valor de um campo. Em sistemas que precisam dele, 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ê-la para antes desse método.

VolatileRead(UIntPtr)

Lê o valor de um campo. Em sistemas que precisam dele, 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ê-la para antes desse método.

VolatileWrite(Byte, Byte)

Grava um valor em um campo. Em sistemas que precisam dele, 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ê-la para depois desse método.

VolatileWrite(Double, Double)

Grava um valor em um campo. Em sistemas que precisam dele, 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ê-la para depois desse método.

VolatileWrite(Int16, Int16)

Grava um valor em um campo. Em sistemas que precisam dele, 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ê-la para depois desse método.

VolatileWrite(Int32, Int32)

Grava um valor em um campo. Em sistemas que precisam dele, 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ê-la para depois desse método.

VolatileWrite(Int64, Int64)

Grava um valor em um campo. Em sistemas que precisam dele, 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ê-la para depois desse método.

VolatileWrite(IntPtr, IntPtr)

Grava um valor em um campo. Em sistemas que precisam dele, 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ê-la para depois desse método.

VolatileWrite(Object, Object)

Grava um valor em um campo. Em sistemas que precisam dele, 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ê-la para depois desse método.

VolatileWrite(SByte, SByte)

Grava um valor em um campo. Em sistemas que precisam dele, 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ê-la para depois desse método.

VolatileWrite(Single, Single)

Grava um valor em um campo. Em sistemas que precisam dele, 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ê-la para depois desse método.

VolatileWrite(UInt16, UInt16)

Grava um valor em um campo. Em sistemas que precisam dele, 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ê-la para depois desse método.

VolatileWrite(UInt32, UInt32)

Grava um valor em um campo. Em sistemas que precisam dele, 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ê-la para depois desse método.

VolatileWrite(UInt64, UInt64)

Grava um valor em um campo. Em sistemas que precisam dele, 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ê-la para depois desse método.

VolatileWrite(UIntPtr, UIntPtr)

Grava um valor em um campo. Em sistemas que precisam dele, 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ê-la para depois desse 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 de recebimento.

Implantações explícitas de interface

_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

Este tipo é thread-safe.

Confira também