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

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

スレッドは、作成されてから破棄されるまでの間に、1 回以上 ThreadState 状態になります。スレッドが WaitSleepJoin 状態のときに Interrupt を呼び出すと、ターゲット スレッドで ThreadInterruptedException がスローされます。スレッドが WaitSleepJoin 状態でない場合は、スレッドがその状態になるまで例外はスローされません。スレッドがブロックしない場合、そのスレッドは中断されることなく完了します。
ThreadInterruptedException は、値 0x80131519 の HRESULT COR_E_THREADINTERRUPTED を使用します。
ThreadInterruptedException のインスタンスの初期プロパティ値の一覧については、ThreadInterruptedException コンストラクタのトピックを参照してください。

実行中のスレッドが中断され、その後ブロックされたときの動作の例を次に示します。
Option Explicit Option Strict Imports System Imports System.Security.Permissions Imports System.Threading <Assembly: SecurityPermissionAttribute(SecurityAction.RequestMinimum, _ ControlThread := True)> Public Class ThreadInterrupt <MTAThread> _ Shared Sub Main() Dim stayAwake As New StayAwake() Dim newThread As New Thread(AddressOf stayAwake.ThreadMethod) newThread.Start() ' The following line causes an exception to be thrown ' in ThreadMethod if newThread is currently blocked ' or becomes blocked in the future. newThread.Interrupt() Console.WriteLine("Main thread calls Interrupt on newThread.") ' Tell newThread to go to sleep. stayAwake.SleepSwitch = True ' Wait for newThread to end. newThread.Join() End Sub End Class Public Class StayAwake Dim sleepSwitchValue As Boolean = False WriteOnly Property SleepSwitch As Boolean Set sleepSwitchValue = Value End Set End Property Sub New() End Sub Sub ThreadMethod() Console.WriteLine("newThread is executing ThreadMethod.") While Not sleepSwitchValue ' Use SpinWait instead of Sleep to demonstrate the ' effect of calling Interrupt on a running thread. Thread.SpinWait(10000000) End While Try Console.WriteLine("newThread going to sleep.") ' When newThread goes to sleep, it is immediately ' woken up by a ThreadInterruptedException. Thread.Sleep(Timeout.Infinite) Catch ex As ThreadInterruptedException Console.WriteLine("newThread cannot go to " & _ "sleep - interrupted by main thread.") End Try End Sub End Class
using System; using System.Security.Permissions; using System.Threading; [assembly: SecurityPermissionAttribute(SecurityAction.RequestMinimum, ControlThread = true)] class ThreadInterrupt { static void Main() { StayAwake stayAwake = new StayAwake(); Thread newThread = new Thread(new ThreadStart(stayAwake.ThreadMethod)); newThread.Start(); // The following line causes an exception to be thrown // in ThreadMethod if newThread is currently blocked // or becomes blocked in the future. newThread.Interrupt(); Console.WriteLine("Main thread calls Interrupt on newThread."); // Tell newThread to go to sleep. stayAwake.SleepSwitch = true; // Wait for newThread to end. newThread.Join(); } } class StayAwake { bool sleepSwitch = false; public bool SleepSwitch { set{ sleepSwitch = value; } } public StayAwake(){} public void ThreadMethod() { Console.WriteLine("newThread is executing ThreadMethod."); while(!sleepSwitch) { // Use SpinWait instead of Sleep to demonstrate the // effect of calling Interrupt on a running thread. Thread.SpinWait(10000000); } try { Console.WriteLine("newThread going to sleep."); // When newThread goes to sleep, it is immediately // woken up by a ThreadInterruptedException. Thread.Sleep(Timeout.Infinite); } catch(ThreadInterruptedException e) { Console.WriteLine("newThread cannot go to sleep - " + "interrupted by main thread."); } } }
using namespace System; using namespace System::Security::Permissions; using namespace System::Threading; [assembly:SecurityPermissionAttribute(SecurityAction::RequestMinimum, ControlThread=true)]; ref class StayAwake { private: bool sleepSwitch; public: property bool SleepSwitch { void set( bool value ) { sleepSwitch = value; } } StayAwake() { sleepSwitch = false; } void ThreadMethod() { Console::WriteLine( "newThread is executing ThreadMethod." ); while ( !sleepSwitch ) { // Use SpinWait instead of Sleep to demonstrate the // effect of calling Interrupt on a running thread. Thread::SpinWait( 10000000 ); } try { Console::WriteLine( "newThread going to sleep." ); // When newThread goes to sleep, it is immediately // woken up by a ThreadInterruptedException. Thread::Sleep( Timeout::Infinite ); } catch ( ThreadInterruptedException^ /*e*/ ) { Console::WriteLine( "newThread cannot go to sleep - " "interrupted by main thread." ); } } }; int main() { StayAwake^ stayAwake = gcnew StayAwake; Thread^ newThread = gcnew Thread( gcnew ThreadStart( stayAwake, &StayAwake::ThreadMethod ) ); newThread->Start(); // The following line causes an exception to be thrown // in ThreadMethod if newThread is currently blocked // or becomes blocked in the future. newThread->Interrupt(); Console::WriteLine( "Main thread calls Interrupt on newThread." ); // Then tell newThread to go to sleep. stayAwake->SleepSwitch = true; // Wait for newThread to end. newThread->Join(); }
import System.*; import System.Security.Permissions.*; import System.Threading.*; import System.Threading.Thread; /** @assembly SecurityPermissionAttribute(SecurityAction.RequestMinimum, ControlThread = true) */ class ThreadInterrupt { public static void main(String[] args) { StayAwake stayAwake = new StayAwake(); Thread newThread = new Thread(new ThreadStart(stayAwake.ThreadMethod)); newThread.Start(); // The following line causes an exception to be thrown // in ThreadMethod if newThread is currently blocked // or becomes blocked in the future. newThread.Interrupt(); Console.WriteLine("Main thread calls Interrupt on newThread."); // Tell newThread to go to sleep. stayAwake.set_SleepSwitch(true); // Wait for newThread to end. newThread.Join(); } //main } //ThredInterrupt class StayAwake { private boolean sleepSwitch = false; /** @property */ public void set_SleepSwitch(boolean value) { sleepSwitch = value; } //set_SleepSwitch public StayAwake() { } //StayAwake public void ThreadMethod() { Console.WriteLine("newThread is executing ThreadMethod."); while (!(sleepSwitch)) { // Use SpinWait instead of Sleep to demonstrate the // effect of calling Interrupt on a running thread. Thread.SpinWait(10000000); } try { Console.WriteLine("newThread going to sleep."); // When newThread goes to sleep, it is immediately // woken up by a ThreadInterruptedException. Thread.Sleep(Timeout.Infinite); } catch (ThreadInterruptedException e) { Console.WriteLine(("newThread cannot go to sleep - " + "nterrupted by main thread.")); } } //ThreadMethod } //StayAwake

System.Exception
System.SystemException
System.Threading.ThreadInterruptedException


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


ThreadInterruptedException コンストラクタ ()
アセンブリ: mscorlib (mscorlib.dll 内)



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


ThreadInterruptedException コンストラクタ (SerializationInfo, StreamingContext)
アセンブリ: mscorlib (mscorlib.dll 内)

Dim info As SerializationInfo Dim context As StreamingContext Dim instance As New ThreadInterruptedException(info, context)
protected function ThreadInterruptedException ( info : SerializationInfo, context : StreamingContext )


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


ThreadInterruptedException コンストラクタ (String)
アセンブリ: mscorlib (mscorlib.dll 内)



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


ThreadInterruptedException コンストラクタ (String, Exception)
アセンブリ: mscorlib (mscorlib.dll 内)

Dim message As String Dim innerException As Exception Dim instance As New ThreadInterruptedException(message, innerException)

前の例外の直接の結果としてスローされる例外については、InnerException プロパティに、前の例外への参照が格納されます。InnerException プロパティは、コンストラクタに渡されたものと同じ値を返します。InnerException プロパティによって内部例外値がコンストラクタに渡されなかった場合は、null 参照 (Visual Basic では Nothing) を返します。
ThreadInterruptedException のインスタンスの初期プロパティ値を次の表に示します。

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


ThreadInterruptedException コンストラクタ

名前 | 説明 |
---|---|
ThreadInterruptedException () | ThreadInterruptedException クラスの新しいインスタンスを既定のプロパティを使用して初期化します。 |
ThreadInterruptedException (String) | 指定したエラー メッセージを使用して、ThreadInterruptedException クラスの新しいインスタンスを初期化します。 |
ThreadInterruptedException (SerializationInfo, StreamingContext) | シリアル化したデータを使用して、ThreadInterruptedException クラスの新しいインスタンスを初期化します。 |
ThreadInterruptedException (String, Exception) | 指定したエラー メッセージと、この例外の原因である内部例外への参照を使用して、ThreadInterruptedException クラスの新しいインスタンスを初期化します。 |

ThreadInterruptedException プロパティ

名前 | 説明 | |
---|---|---|
![]() | Data | 例外に関する追加のユーザー定義情報を提供するキー/値ペアのコレクションを取得します。 ( Exception から継承されます。) |
![]() | HelpLink | 例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。 ( Exception から継承されます。) |
![]() | InnerException | 現在の例外を発生させた Exception インスタンスを取得します。 ( Exception から継承されます。) |
![]() | Message | 現在の例外を説明するメッセージを取得します。 ( Exception から継承されます。) |
![]() | Source | エラーの原因となったアプリケーションまたはオブジェクトの名前を取得または設定します。 ( Exception から継承されます。) |
![]() | StackTrace | 現在の例外がスローされたときにコール スタックにあったフレームの文字列形式を取得します。 ( Exception から継承されます。) |
![]() | TargetSite | 現在の例外をスローするメソッドを取得します。 ( Exception から継承されます。) |


ThreadInterruptedException メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetBaseException | 派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の主要な原因である Exception を返します。 ( Exception から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetObjectData | 派生クラスでオーバーライドされた場合は、その例外に関する情報を使用して SerializationInfo を設定します。 ( Exception から継承されます。) |
![]() | GetType | 現在のインスタンスのランタイム型を取得します。 ( Exception から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の例外の文字列形式を作成して返します。 ( Exception から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

ThreadInterruptedException メンバ
Thread が待機状態のときに中断されるとスローされる例外。
ThreadInterruptedException データ型で公開されるメンバを以下の表に示します。

名前 | 説明 | |
---|---|---|
![]() | ThreadInterruptedException | オーバーロードされます。 ThreadInterruptedException クラスの新しいインスタンスを初期化します。 |


名前 | 説明 | |
---|---|---|
![]() | Data | 例外に関する追加のユーザー定義情報を提供するキー/値ペアのコレクションを取得します。(Exception から継承されます。) |
![]() | HelpLink | 例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。(Exception から継承されます。) |
![]() | InnerException | 現在の例外を発生させた Exception インスタンスを取得します。(Exception から継承されます。) |
![]() | Message | 現在の例外を説明するメッセージを取得します。(Exception から継承されます。) |
![]() | Source | エラーの原因となったアプリケーションまたはオブジェクトの名前を取得または設定します。(Exception から継承されます。) |
![]() | StackTrace | 現在の例外がスローされたときにコール スタックにあったフレームの文字列形式を取得します。(Exception から継承されます。) |
![]() | TargetSite | 現在の例外をスローするメソッドを取得します。(Exception から継承されます。) |


名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetBaseException | 派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の主要な原因である Exception を返します。 (Exception から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetObjectData | 派生クラスでオーバーライドされた場合は、その例外に関する情報を使用して SerializationInfo を設定します。 (Exception から継承されます。) |
![]() | GetType | 現在のインスタンスのランタイム型を取得します。 (Exception から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の例外の文字列形式を作成して返します。 (Exception から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

Weblioに収録されているすべての辞書からThreadInterruptedExceptionを検索する場合は、下記のリンクをクリックしてください。

- ThreadInterruptedExceptionのページへのリンク