ThreadStateException クラスとは? わかりやすく解説

ThreadStateException クラス

メソッド呼び出しThread無効な ThreadState である場合は、例外スローさます。

名前空間: System.Threading
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class ThreadStateException
    Inherits SystemException
Dim instance As ThreadStateException
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class ThreadStateException : SystemException
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class ThreadStateException : public
 SystemException
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class ThreadStateException extends SystemException
SerializableAttribute 
ComVisibleAttribute(true) 
public class ThreadStateException extends
 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

このコードによって、次の出力生成されます。

 In main. Attempting to restart myThread.
     Working thread...
     Caught: Thread is running or terminated. Cannot restart.
継承階層継承階層
System.Object
   System.Exception
     System.SystemException
      System.Threading.ThreadStateException
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ThreadStateException クラス」の関連用語

ThreadStateException クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ThreadStateException クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS