ThreadStateException Класс

Определение

Исключение, которое выдается, когда объект Thread является неправильным свойством ThreadState для вызова метода.

public ref class ThreadStateException : SystemException
public ref class ThreadStateException : Exception
public class ThreadStateException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
public class ThreadStateException : Exception
[System.Serializable]
public class ThreadStateException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ThreadStateException : SystemException
type ThreadStateException = class
    inherit SystemException
[<System.Runtime.InteropServices.ComVisible(true)>]
type ThreadStateException = class
    inherit Exception
[<System.Serializable>]
type ThreadStateException = class
    inherit SystemException
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type ThreadStateException = class
    inherit SystemException
Public Class ThreadStateException
Inherits SystemException
Public Class ThreadStateException
Inherits Exception
Наследование
ThreadStateException
Наследование
ThreadStateException
Атрибуты

Примеры

В следующем примере показана ошибка, которая вызывает исключение .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

Этот код выводит следующие результаты:

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

Комментарии

После создания потока он находится по крайней мере в одном из состояний ThreadState , пока не завершится. ThreadStateException создается методами, которые не могут выполнить запрошенную операцию из-за текущего состояния потока. Например, при попытке перезапустить прерванный поток путем вызова Start для прерванного потока возникает ThreadStateExceptionисключение .

ThreadStateException использует COR_E_THREADSTATE HRESULT, которая имеет значение 0x80131520.

Список начальных значений свойств для экземпляра ThreadStateException, см. в разделе ThreadStateException конструкторы.

Конструкторы

ThreadStateException()

Инициализирует новый экземпляр класса ThreadStateException стандартными свойствами.

ThreadStateException(SerializationInfo, StreamingContext)

Инициализирует новый экземпляр класса ThreadStateException с сериализованными данными.

ThreadStateException(String)

Инициализирует новый экземпляр класса ThreadStateException с указанным сообщением об ошибке.

ThreadStateException(String, Exception)

Инициализирует новый экземпляр класса ThreadStateException указанным сообщением об ошибке и ссылкой на внутреннее исключение, вызвавшее данное исключение.

Свойства

Data

Возвращает коллекцию пар «ключ-значение», предоставляющую дополнительные сведения об исключении.

(Унаследовано от Exception)
HelpLink

Получает или задает ссылку на файл справки, связанный с этим исключением.

(Унаследовано от Exception)
HResult

Возвращает или задает HRESULT — кодированное числовое значение, присвоенное определенному исключению.

(Унаследовано от Exception)
InnerException

Возвращает экземпляр класса Exception, который вызвал текущее исключение.

(Унаследовано от Exception)
Message

Возвращает сообщение, описывающее текущее исключение.

(Унаследовано от Exception)
Source

Возвращает или задает имя приложения или объекта, вызывавшего ошибку.

(Унаследовано от Exception)
StackTrace

Получает строковое представление непосредственных кадров в стеке вызова.

(Унаследовано от Exception)
TargetSite

Возвращает метод, создавший текущее исключение.

(Унаследовано от Exception)

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetBaseException()

При переопределении в производном классе возвращает исключение Exception, которое является первопричиной одного или нескольких последующих исключений.

(Унаследовано от Exception)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)

При переопределении в производном классе задает объект SerializationInfo со сведениями об исключении.

(Унаследовано от Exception)
GetType()

Возвращает тип среды выполнения текущего экземпляра.

(Унаследовано от Exception)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Создает и возвращает строковое представление текущего исключения.

(Унаследовано от Exception)

События

SerializeObjectState
Устаревшие..

Возникает, когда исключение сериализовано для создания объекта состояния исключения, содержащего сериализованные данные об исключении.

(Унаследовано от Exception)

Применяется к

См. также раздел