ThreadStateException Classe

Definição

A exceção que é lançada quando a Thread está num inválido ThreadState para a chamada ao método.

public ref class ThreadStateException : SystemException
[System.Serializable]
public class ThreadStateException : SystemException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ThreadStateException : SystemException
public class ThreadStateException : SystemException
[<System.Serializable>]
type ThreadStateException = class
    inherit SystemException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ThreadStateException = class
    inherit SystemException
type ThreadStateException = class
    inherit SystemException
Public Class ThreadStateException
Inherits SystemException
Herança
ThreadStateException
Atributos

Exemplos

O exemplo seguinte demonstra um erro que faz o sistema lançar um ThreadStateException.

using System;
using System.Threading;

public class ThreadWork
{
   public static void DoWork()
   {
      Console.WriteLine("Working thread...");
   }
}

class ThreadStateTest
{
   public static void Main()
   {
      ThreadStart myThreadDelegate = new ThreadStart(ThreadWork.DoWork);
      Thread myThread = new Thread(myThreadDelegate);
      myThread.Start();
      Thread.Sleep(0);
      Console.WriteLine("In main. Attempting to restart myThread.");
      try
      {
         myThread.Start();
      }
      catch (ThreadStateException e)
      {
         Console.WriteLine("Caught: {0}", e.Message);
      }
   }
}
Imports System.Threading

Public Class ThreadWork
   
   Public Shared Sub DoWork()
      Console.WriteLine("Working thread...")
   End Sub
End Class

Class ThreadStateTest
   
   Public Shared Sub Main()
      Dim myThreadDelegate As New ThreadStart(AddressOf ThreadWork.DoWork)
      Dim myThread As New Thread(myThreadDelegate)
      myThread.Start()
      Thread.Sleep(0)
      Console.WriteLine("In main. Attempting to restart myThread.")
      Try
         myThread.Start()
      Catch e As ThreadStateException
         Console.WriteLine("Caught: {0}", e.Message)
      End Try
   End Sub
End Class

Este código gera o seguinte resultado:

In main. Attempting to restart myThread.
    Working thread...
    Caught: Thread is running or terminated. Cannot restart.

Observações

Uma vez criada uma thread, ela permanece em pelo menos um dos ThreadState estados até terminar. ThreadStateException é lançado por métodos que não conseguem realizar a operação solicitada devido ao estado atual de uma thread. Por exemplo, tentar reiniciar uma thread abortada chamando Start uma thread que terminou gera um ThreadStateException.

ThreadStateException utiliza o COR_E_THREADSTATE HRESULT, que tem o valor 0x80131520.

Para obter uma lista dos valores iniciais de propriedade de uma instância de ThreadStateException, consulte os construtores de ThreadStateException.

Construtores

Name Description
ThreadStateException()

Inicializa uma nova instância da ThreadStateException classe com propriedades por defeito.

ThreadStateException(SerializationInfo, StreamingContext)

Inicializa uma nova instância da ThreadStateException classe com dados serializados.

ThreadStateException(String, Exception)

Inicializa uma nova instância da ThreadStateException classe com uma mensagem de erro especificada e uma referência à exceção interna que é a causa dessa exceção.

ThreadStateException(String)

Inicializa uma nova instância da ThreadStateException classe com uma mensagem de erro especificada.

Propriedades

Name Description
Data

Obtém uma coleção de pares chave/valor que fornecem informação adicional definida pelo utilizador sobre a exceção.

(Herdado de Exception)
HelpLink

Obtém ou define um link para o ficheiro de ajuda associado a esta exceção.

(Herdado de Exception)
HResult

Recebe ou define HRESULT, um valor numérico codificado atribuído a uma exceção específica.

(Herdado de Exception)
InnerException

Obtém a Exception instância que causou a exceção atual.

(Herdado de Exception)
Message

Recebe uma mensagem que descreve a exceção atual.

(Herdado de Exception)
Source

Obtém ou define o nome do aplicativo ou o objeto que causa o erro.

(Herdado de Exception)
StackTrace

Obtém uma representação string dos frames imediatos na stack de chamadas.

(Herdado de Exception)
TargetSite

Obtém o método que lança a exceção atual.

(Herdado de Exception)

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetBaseException()

Quando sobrescrito numa classe derivada, devolve o Exception que é a causa raiz de uma ou mais exceções subsequentes.

(Herdado de Exception)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetObjectData(SerializationInfo, StreamingContext)

Quando sobreposto numa classe derivada, define a SerializationInfo informação com sobre a exceção.

(Herdado de Exception)
GetType()

Obtém o tipo de execução da instância atual.

(Herdado de Exception)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Cria e devolve uma representação string da exceção atual.

(Herdado de Exception)

evento

Name Description
SerializeObjectState

Ocorre quando uma exceção é serializada para criar um objeto de estado de exceção que contém dados serializados sobre a exceção.

(Herdado de Exception)

Aplica-se a

Ver também