ThreadStateException クラス
アセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Class ThreadStateException Inherits SystemException
[SerializableAttribute] [ComVisibleAttribute(true)] public class ThreadStateException : SystemException
[SerializableAttribute] [ComVisibleAttribute(true)] public ref class ThreadStateException : public SystemException

スレッドは、作成されてから終了するまで少なくとも 1 つの ThreadState 状態になります。メソッドが、スレッドの現在の状態によって要求された操作が実行できない場合、ThreadStateException をスローします。たとえば、終了したスレッドで Start を呼び出してスレッドの中断を再開しようとすると、ThreadStateException がスローされます。
ThreadStateException は、値 0x80131520 の HRESULT COR_E_THREADSTATE を使用します。
ThreadStateException のインスタンスの初期プロパティ値の一覧については、ThreadStateException コンストラクタのトピックを参照してください。

ThreadStateException がスローされる原因となるエラーの例を次に示します。
Imports System Imports System.Threading Public Class ThreadWork Public Shared Sub DoWork() Console.WriteLine("Working thread...") End Sub 'DoWork End Class 'ThreadWork 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 'Main End Class 'ThreadStateTest
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); } } }
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 ); } }
import System.*; import System.Threading.*; public class ThreadWork { public static void DoWork() { Console.WriteLine("Working thread..."); } //DoWork } //ThreadWork class ThreadStateTest { public static void main(String[] args) { ThreadStart myThreadDelegate = new ThreadStart(ThreadWork.DoWork); System.Threading.Thread myThread = new System.Threading.Thread(myThreadDelegate); myThread.Start(); System.Threading.Thread.Sleep(0); Console.WriteLine("In main. Attempting to restart myThread."); try { myThread.Start(); } catch (ThreadStateException e) { Console.WriteLine("Caught: {0}", e.get_Message()); } } //main } //ThreadStateTest

System.Exception
System.SystemException
System.Threading.ThreadStateException


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ThreadStateException クラスのページへのリンク