ThreadStateException Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Eccezione generata quando un Thread oggetto si trova in una chiamata al metodo non valido ThreadState .
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
- Ereditarietà
- Attributi
Esempio
Nell'esempio seguente viene illustrato un errore che fa sì che il sistema generi un'eccezione 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
Questo codice genera l'output seguente:
In main. Attempting to restart myThread.
Working thread...
Caught: Thread is running or terminated. Cannot restart.
Commenti
Dopo aver creato un thread, si trova in almeno uno degli ThreadState stati fino a quando non termina.
ThreadStateException viene generata da metodi che non possono eseguire l'operazione richiesta a causa dello stato corrente di un thread. Ad esempio, il tentativo di riavviare un thread interrotto chiamando Start su un thread che ha terminato genera un'eccezione ThreadStateException.
ThreadStateException usa il COR_E_THREADSTATE HRESULT, che ha il valore 0x80131520.
Per un elenco dei valori iniziali delle proprietà per un'istanza di ThreadStateException, consultare i costruttori di ThreadStateException.
Costruttori
| Nome | Descrizione |
|---|---|
| ThreadStateException() |
Inizializza una nuova istanza della ThreadStateException classe con le proprietà predefinite. |
| ThreadStateException(SerializationInfo, StreamingContext) |
Inizializza una nuova istanza della classe ThreadStateException con dati serializzati. |
| 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 di questa eccezione. |
| ThreadStateException(String) |
Inizializza una nuova istanza della ThreadStateException classe con un messaggio di errore specificato. |
Proprietà
| Nome | Descrizione |
|---|---|
| Data |
Ottiene una raccolta di coppie chiave/valore che forniscono informazioni aggiuntive definite dall'utente sull'eccezione. (Ereditato da Exception) |
| HelpLink |
Ottiene o imposta un collegamento al file della Guida associato a questa eccezione. (Ereditato da Exception) |
| HResult |
Ottiene o imposta HRESULT, valore numerico codificato assegnato a un'eccezione specifica. (Ereditato da Exception) |
| InnerException |
Ottiene l'istanza Exception che ha causato l'eccezione corrente. (Ereditato da Exception) |
| Message |
Ottiene un messaggio che descrive l'eccezione corrente. (Ereditato da Exception) |
| Source |
Ottiene o imposta il nome dell'applicazione o dell'oggetto che causa l'errore. (Ereditato da Exception) |
| StackTrace |
Ottiene una rappresentazione di stringa dei fotogrammi immediati nello stack di chiamate. (Ereditato da Exception) |
| TargetSite |
Ottiene il metodo che genera l'eccezione corrente. (Ereditato da Exception) |
Metodi
| Nome | Descrizione |
|---|---|
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetBaseException() |
Quando sottoposto a override in una classe derivata, restituisce l'oggetto Exception che rappresenta la causa radice di una o più eccezioni successive. (Ereditato da Exception) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
In caso di override in una classe derivata, imposta con le SerializationInfo informazioni sull'eccezione. (Ereditato da Exception) |
| GetType() |
Ottiene il tipo di runtime dell'istanza corrente. (Ereditato da Exception) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Crea e restituisce una rappresentazione di stringa dell'eccezione corrente. (Ereditato da Exception) |
Eventi
| Nome | Descrizione |
|---|---|
| SerializeObjectState |
Si verifica quando viene serializzata un'eccezione per creare un oggetto stato dell'eccezione contenente dati serializzati sull'eccezione. (Ereditato da Exception) |