Thread Classe

Definição

Cria e controla uma thread, define a sua prioridade e obtém o seu estado.

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

Observações

Para mais informações sobre esta API, consulte Observações suplementares da API para o Thread.

Construtores

Name Description
Thread(ParameterizedThreadStart, Int32)

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

Thread(ParameterizedThreadStart)

Inicializa uma nova instância da Thread classe, especificando um delegado que permite que um objeto seja passado para a thread quando a thread é iniciada.

Thread(ThreadStart, Int32)

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

Thread(ThreadStart)

Inicializa uma nova instância da Thread classe.

Propriedades

Name Description
ApartmentState
Obsoleto.

Percebe ou define o estado do apartamento deste tópico.

CurrentContext

Obtém o contexto atual em que a thread está a ser executada.

CurrentCulture

Obtém ou define a cultura do tópico atual.

CurrentPrincipal

Obtém ou define o principal atual do thread (para segurança baseada em funções).

CurrentThread

Fica com o tópico que está a correr atualmente.

CurrentUICulture

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

ExecutionContext

Obtém um ExecutionContext objeto que contém informação sobre os vários contextos da thread atual.

IsAlive

Recebe um valor que indica o estado de execução da thread atual.

IsBackground

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

IsThreadPoolThread

Recebe um valor que indica se uma thread pertence ou não ao pool de threads geridos.

ManagedThreadId

Obtém um identificador único para a thread gerida atual.

Name

Obtém ou define o nome do tópico.

Priority

Recebe ou define um valor que indica a prioridade de agendamento de uma thread.

ThreadState

Obtém um valor contendo os estados do thread atual.

Métodos

Name Description
Abort()

Eleva a ThreadAbortException no thread onde é invocado, para iniciar o processo de terminação do thread. Chamar este método normalmente termina o thread.

Abort(Object)

Levanta a ThreadAbortException no thread onde é invocado, para iniciar o processo de terminação do thread, fornecendo também informação de exceção sobre a terminação do thread. Chamar este método normalmente termina o thread.

AllocateDataSlot()

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

AllocateNamedDataSlot(String)

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

BeginCriticalRegion()

Notifica um host que a execução está prestes a entrar numa região de código em que os efeitos de um aborto de thread ou exceção não tratada podem pôr em risco outras tarefas no domínio da aplicação.

BeginThreadAffinity()

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

DisableComObjectEagerCleanup()

Desliga a limpeza automática dos wrappers chamáveis em tempo de execução (RCW) para a thread atual.

EndCriticalRegion()

Notifica um host que a execução está prestes a entrar numa região de código em que os efeitos de um aborto de thread ou exceção não tratada são limitados à tarefa atual.

EndThreadAffinity()

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

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Finalize()

Assegura que os recursos são libertados e que outras operações de limpeza são realizadas quando o coletor de lixo recupera o Thread objeto.

FreeNamedDataSlot(String)

Elimina a associação entre um nome e um espaço, para todas as threads no processo. Para melhor desempenho, use campos marcados com o ThreadStaticAttribute atributo em vez disso.

GetApartmentState()

Devolve um ApartmentState valor que indica o estado do apartamento.

GetCompressedStack()
Obsoleto.

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

GetCurrentProcessorId()

Recebe um ID usado para indicar em que processador o thread atual está a executar.

GetData(LocalDataStoreSlot)

Recupera o valor do slot especificado na thread atual, dentro do domínio atual da thread atual. Para melhor desempenho, use campos marcados com o ThreadStaticAttribute atributo em vez disso.

GetDomain()

Devolve o domínio atual onde o thread atual está a correr.

GetDomainID()

Devolve um identificador único do domínio da aplicação.

GetHashCode()

Devolve um código hash para o thread atual.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetNamedDataSlot(String)

Procura um slot de dados nomeado. Para melhor desempenho, use campos marcados com o ThreadStaticAttribute atributo em vez disso.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
Interrupt()

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

Join()

Bloqueia o thread que chama até que o thread representado por esta instância termine, continuando a realizar o COM e SendMessage bombeamento padrão.

Join(Int32)

Bloqueia o thread que chama até que o thread representado por esta instância termine ou o tempo especificado decorra, continuando a realizar o COM padrão e o encaminhamento de mensagens.

Join(TimeSpan)

Bloqueia o thread que chama até que o thread representado por esta instância termine ou o tempo especificado decorra, continuando a realizar o COM padrão e o encaminhamento de mensagens.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
MemoryBarrier()

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

ResetAbort()

Cancela um Abort(Object) pedido para o tópico atual.

Resume()
Obsoleto.
Obsoleto.

Retoma um tópico que foi suspenso.

SetApartmentState(ApartmentState)

Define o estado do apartamento de um tópico antes de ser iniciado.

SetCompressedStack(CompressedStack)
Obsoleto.

Aplica um capturado CompressedStack ao tópico atual.

SetData(LocalDataStoreSlot, Object)

Define os dados no slot especificado na thread em curso, para o domínio atual dessa thread. Para melhor desempenho, use campos marcados com o ThreadStaticAttribute atributo em vez disso.

Sleep(Int32)

Suspende o fio atual durante o número especificado de milissegundos.

Sleep(TimeSpan)

Suspende o thread atual durante o tempo especificado.

SpinWait(Int32)

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

Start()

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

Start(Object)

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

Suspend()
Obsoleto.
Obsoleto.

Ou suspende a linha, ou se a linha já estiver suspensa, não tem efeito.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
TrySetApartmentState(ApartmentState)

Define o estado do apartamento de um tópico antes de ser iniciado.

VolatileRead(Byte)

Lê o valor de um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer após este método no código, o processador não pode movê-lo antes deste método.

VolatileRead(Double)

Lê o valor de um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer após este método no código, o processador não pode movê-lo antes deste método.

VolatileRead(Int16)

Lê o valor de um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer após este método no código, o processador não pode movê-lo antes deste método.

VolatileRead(Int32)

Lê o valor de um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer após este método no código, o processador não pode movê-lo antes deste método.

VolatileRead(Int64)

Lê o valor de um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer após este método no código, o processador não pode movê-lo antes deste método.

VolatileRead(IntPtr)

Lê o valor de um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer após este método no código, o processador não pode movê-lo antes deste método.

VolatileRead(Object)

Lê o valor de um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer após este método no código, o processador não pode movê-lo antes deste método.

VolatileRead(SByte)

Lê o valor de um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer após este método no código, o processador não pode movê-lo antes deste método.

VolatileRead(Single)

Lê o valor de um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer após este método no código, o processador não pode movê-lo antes deste método.

VolatileRead(UInt16)

Lê o valor de um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer após este método no código, o processador não pode movê-lo antes deste método.

VolatileRead(UInt32)

Lê o valor de um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer após este método no código, o processador não pode movê-lo antes deste método.

VolatileRead(UInt64)

Lê o valor de um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer após este método no código, o processador não pode movê-lo antes deste método.

VolatileRead(UIntPtr)

Lê o valor de um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer após este método no código, o processador não pode movê-lo antes deste método.

VolatileWrite(Byte, Byte)

Escreve um valor para um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer antes deste método no código, o processador não pode movê-lo após esse método.

VolatileWrite(Double, Double)

Escreve um valor para um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer antes deste método no código, o processador não pode movê-lo após esse método.

VolatileWrite(Int16, Int16)

Escreve um valor para um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer antes deste método no código, o processador não pode movê-lo após esse método.

VolatileWrite(Int32, Int32)

Escreve um valor para um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer antes deste método no código, o processador não pode movê-lo após esse método.

VolatileWrite(Int64, Int64)

Escreve um valor para um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer antes deste método no código, o processador não pode movê-lo após esse método.

VolatileWrite(IntPtr, IntPtr)

Escreve um valor para um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer antes deste método no código, o processador não pode movê-lo após esse método.

VolatileWrite(Object, Object)

Escreve um valor para um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer antes deste método no código, o processador não pode movê-lo após esse método.

VolatileWrite(SByte, SByte)

Escreve um valor para um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer antes deste método no código, o processador não pode movê-lo após esse método.

VolatileWrite(Single, Single)

Escreve um valor para um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer antes deste método no código, o processador não pode movê-lo após esse método.

VolatileWrite(UInt16, UInt16)

Escreve um valor para um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer antes deste método no código, o processador não pode movê-lo após esse método.

VolatileWrite(UInt32, UInt32)

Escreve um valor para um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer antes deste método no código, o processador não pode movê-lo após esse método.

VolatileWrite(UInt64, UInt64)

Escreve um valor para um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer antes deste método no código, o processador não pode movê-lo após esse método.

VolatileWrite(UIntPtr, UIntPtr)

Escreve um valor para um campo. Em sistemas que o requerem, insere uma barreira de memória que impede o processador de reordenar as operações de memória da seguinte forma: Se uma leitura ou escrita aparecer antes deste método no código, o processador não pode movê-lo após esse método.

Yield()

Faz com que a thread que chama dê a execução a outra thread pronta para correr no processador atual. O sistema operativo seleciona o thread a ceder.

Implementações de Interface Explícita

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho.

_Thread.GetTypeInfo(UInt32, UInt32, IntPtr)

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

_Thread.GetTypeInfoCount(UInt32)

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

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

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

Aplica-se a

Segurança de Thread

Este tipo é seguro para fios.

Ver também