无涯教程-C# - 线程Abort中止

49 阅读1分钟

方法的作用是:终止线程。如果未完成中止操作,则引发ThreadAbortException。

using System;  
using System.Threading;  
public class MyThread  
{  
    public void Thread1()  
    {  
        for (int i = 0; i < 10; i++)  
        {  
            Console.WriteLine(i);  
            Thread.Sleep(200);  
        }  
    }  
}  
public class ThreadExample  
{  
    public static void Main()  
    {  
        Console.WriteLine("Start of Main");  
        MyThread mt = new MyThread();  
        Thread t1 = new Thread(new ThreadStart(mt.Thread1));  
        Thread t2 = new Thread(new ThreadStart(mt.Thread1));  
    t1</span><span class="pun">.</span><span class="typ">Start</span><span class="pun">();</span><span class="pln">  
    t2</span><span class="pun">.</span><span class="typ">Start</span><span class="pun">();</span><span class="pln">  
    </span><span class="kwd">try</span><span class="pln">  
    </span><span class="pun">{</span><span class="pln">  
        t1</span><span class="pun">.</span><span class="typ">Abort</span><span class="pun">();</span><span class="pln">  
        t2</span><span class="pun">.</span><span class="typ">Abort</span><span class="pun">();</span><span class="pln">  
    </span><span class="pun">}</span><span class="pln">  
    </span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="typ">ThreadAbortException</span><span class="pln"> tae</span><span class="pun">)</span><span class="pln">  
    </span><span class="pun">{</span><span class="pln">  
        </span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="pln">tae</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">());</span><span class="pln">  
    </span><span class="pun">}</span><span class="pln">  
    </span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"End of Main"</span><span class="pun">);</span><span class="pln">  
</span><span class="pun">}</span><span class="pln">  

}

输出:

输出不可预测,因为线程可能处于运行状态。

Start of Main
0
End of Main

参考链接

www.learnfk.com/csharp/c-sh…