ThreadStateException Classe

Definizione

Eccezione generata quando un Thread si trova in un ThreadState non valido per la chiamata al metodo.The exception that is thrown when a Thread is in an invalid ThreadState for the method call.

public ref class ThreadStateException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ThreadStateException : SystemException
type ThreadStateException = class
    inherit SystemException
Public Class ThreadStateException
Inherits SystemException
Ereditarietà
ThreadStateException
Attributi

Esempi

Nell'esempio seguente viene illustrato un errore che causa la generazione di un ThreadStateExceptionda parte del sistema.The following example demonstrates an error that causes the system to throw a ThreadStateException.

using namespace System;
using namespace System::Threading;
ref class ThreadWork
{
public:
   static void DoWork()
   {
      Console::WriteLine( "Working thread..." );
   }

};

int main()
{
   ThreadStart^ myThreadDelegate = gcnew ThreadStart( ThreadWork::DoWork );
   Thread^ myThread = gcnew 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 );
   }

}

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

L'output del codice è il seguente:This code produces the following output:

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

Commenti

Una volta creato, un thread si trova in almeno uno degli Stati ThreadState fino a quando non termina.Once a thread is created, it is in at least one of the ThreadState states until it terminates. ThreadStateException viene generata da metodi che non possono eseguire l'operazione richiesta a causa dello stato corrente di un thread.ThreadStateException is thrown by methods that cannot perform the requested operation due to the current state of a thread. Ad esempio, se si tenta di riavviare un thread interrotto chiamando Start su un thread che è stato terminato, viene generata un'ThreadStateException.For example, trying to restart an aborted thread by calling Start on a thread that has terminated throws a ThreadStateException.

ThreadStateException utilizza HRESULT COR_E_THREADSTATE, il cui valore è 0x80131520.ThreadStateException uses the HRESULT COR_E_THREADSTATE, which has the value 0x80131520.

Per un elenco di valori di proprietà iniziali per un'istanza di ThreadStateException, vedere il ThreadStateException costruttori.For a list of initial property values for an instance of ThreadStateException, see the ThreadStateException constructors.

Costruttori

ThreadStateException()

Inizializza una nuova istanza della classe ThreadStateException con le proprietà predefinite.Initializes a new instance of the ThreadStateException class with default properties.

ThreadStateException(SerializationInfo, StreamingContext)

Inizializza una nuova istanza della classe ThreadStateException con dati serializzati.Initializes a new instance of the ThreadStateException class with serialized data.

ThreadStateException(String)

Inizializza una nuova istanza della classe ThreadStateException con un messaggio di errore specificato.Initializes a new instance of the ThreadStateException class with a specified error message.

ThreadStateException(String, Exception)

Inizializza una nuova istanza della classe ThreadStateException con un messaggio di errore specificato e un riferimento all'eccezione interna che è la causa dell'eccezione corrente.Initializes a new instance of the ThreadStateException class with a specified error message and a reference to the inner exception that is the cause of this exception.

Proprietà

Data

Ottiene una raccolta di coppie chiave/valore che forniscono informazioni definite dall'utente aggiuntive sull'eccezione.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Ereditato da Exception)
HelpLink

Ottiene o imposta un collegamento al file della Guida associato all'eccezione.Gets or sets a link to the help file associated with this exception.

(Ereditato da Exception)
HResult

Ottiene o imposta HRESULT, un valore numerico codificato che viene assegnato a un'eccezione specifica.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Ereditato da Exception)
InnerException

Ottiene l'istanza di Exception che ha causato l'eccezione corrente.Gets the Exception instance that caused the current exception.

(Ereditato da Exception)
Message

Ottiene un messaggio che descrive l'eccezione corrente.Gets a message that describes the current exception.

(Ereditato da Exception)
Source

Ottiene o imposta il nome dell'oggetto o dell'applicazione che ha generato l'errore.Gets or sets the name of the application or the object that causes the error.

(Ereditato da Exception)
StackTrace

Ottiene una rappresentazione di stringa dei frame immediati nello stack di chiamate.Gets a string representation of the immediate frames on the call stack.

(Ereditato da Exception)
TargetSite

Ottiene il metodo che genera l'eccezione corrente.Gets the method that throws the current exception.

(Ereditato da Exception)

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetBaseException()

Quando ne viene eseguito l'override in una classe derivata, restituisce l'Exception che è la causa radice di una o più eccezioni successive.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Ereditato da Exception)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetObjectData(SerializationInfo, StreamingContext)

Quando ne viene eseguito l'override in una classe derivata, imposta il controllo SerializationInfo con le informazioni sull'eccezione.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Ereditato da Exception)
GetType()

Ottiene il tipo di runtime dell'istanza corrente.Gets the runtime type of the current instance.

(Ereditato da Exception)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Crea e restituisce una rappresentazione di stringa dell'eccezione corrente.Creates and returns a string representation of the current exception.

(Ereditato da Exception)

Eventi

SerializeObjectState

Si verifica quando un'eccezione viene serializzata per creare un oggetto di stato eccezione contenente i dati serializzati relativi all'eccezione.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Ereditato da Exception)

Si applica a

Vedi anche