Thread.Abort メソッド
このメソッドが呼び出された対象のスレッドで、そのスレッドの終了プロセスを開始する ThreadAbortException を発生させます。このメソッドを呼び出すと、通常、スレッドが終了します。
オーバーロードの一覧
このメソッドが呼び出された対象のスレッドで、そのスレッドの終了プロセスを開始する ThreadAbortException を発生させます。このメソッドを呼び出すと、通常、スレッドが終了します。
[Visual Basic] Overloads Public Sub Abort()
[C#] public void Abort();
[C++] public: void Abort();
[JScript] public function Abort();
このメソッドが呼び出された対象のスレッドで、スレッドの終了プロセスを開始する ThreadAbortException を発生させます。またスレッドの終了に関する例外情報も提供します。このメソッドを呼び出すと、通常、スレッドが終了します。
[Visual Basic] Overloads Public Sub Abort(Object)
[JScript] public function Abort(Object);
使用例
[Visual Basic, C#, C++] 中止するスレッドに情報を渡す方法の例を次に示します。
[Visual Basic, C#, C++] メモ ここでは、Abort のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。
Imports System
Imports System.Threading
Public Class Test
Shared Sub Main()
Dim newThread As New Thread(AddressOf TestMethod)
newThread.Start()
Thread.Sleep(1000)
' Abort newThread.
Console.WriteLine("Main aborting new thread.")
newThread.Abort("Information from Main.")
' Wait for the thread to terminate.
newThread.Join()
Console.WriteLine("New thread terminated - Main exiting.")
End Sub
Shared Sub TestMethod()
Try
While True
Console.WriteLine("New thread running.")
Thread.Sleep(1000)
End While
Catch abortException As ThreadAbortException
Console.WriteLine( _
CType(abortException.ExceptionState, String))
End Try
End Sub
End Class
[C#]
using System;
using System.Threading;
class Test
{
public static void Main()
{
Thread newThread = new Thread(new ThreadStart(TestMethod));
newThread.Start();
Thread.Sleep(1000);
// Abort newThread.
Console.WriteLine("Main aborting new thread.");
newThread.Abort("Information from Main.");
// Wait for the thread to terminate.
newThread.Join();
Console.WriteLine("New thread terminated - Main exiting.");
}
static void TestMethod()
{
try
{
while(true)
{
Console.WriteLine("New thread running.");
Thread.Sleep(1000);
}
}
catch(ThreadAbortException abortException)
{
Console.WriteLine((string)abortException.ExceptionState);
}
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Threading;
__gc class Test
{
Test() {}
public:
static void TestMethod()
{
try
{
while(true)
{
Console::WriteLine(S"New thread running.");
Thread::Sleep(1000);
}
}
catch(ThreadAbortException* abortException)
{
Console::WriteLine(dynamic_cast<String*>(
abortException->ExceptionState));
}
}
};
void main()
{
Thread* newThread =
new Thread(new ThreadStart(0, &Test::TestMethod));
newThread->Start();
Thread::Sleep(1000);
// Abort newThread.
Console::WriteLine(S"Main aborting new thread.");
newThread->Abort(S"Information from main.");
// Wait for the thread to terminate.
newThread->Join();
Console::WriteLine(S"New thread terminated - main exiting.");
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。