次の方法で共有


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)

[C#] public void Abort(object);

[C++] public: void 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++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

参照

Thread クラス | Thread メンバ | System.Threading 名前空間