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 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, Exception)

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

ThreadStateException(String)

Инициализирует новый экземпляр 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)

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

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